@manahippo/aptos-wallet-adapter 0.4.2 → 0.4.3

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 CHANGED
@@ -11,6 +11,7 @@ Supports:
11
11
  - [Hippo web wallet](https://hippo-wallet-test.web.app/)
12
12
  - [Pontem Wallet](https://pontem.network/pontem-wallet)
13
13
  - [Spika wallet](https://spika.app)
14
+ - [Rise Wallet](https://rise)
14
15
 
15
16
  Working on (PR welcome):
16
17
 
@@ -52,7 +53,8 @@ import {
52
53
  MartianWalletAdapter,
53
54
  FewchaWalletAdapter,
54
55
  PontemWalletAdapter,
55
- SpikaWalletAdapter
56
+ SpikaWalletAdapter,
57
+ RiseWalletAdapter
56
58
  } from '@manahippo/aptos-wallet-adapter';
57
59
 
58
60
  const wallets = [
@@ -62,7 +64,8 @@ const wallets = [
62
64
  new FewchaWalletAdapter(),
63
65
  new HippoExtensionWalletAdapter(),
64
66
  new PontemWalletAdapter(),
65
- new SpikaWalletAdapter()
67
+ new SpikaWalletAdapter(),
68
+ new RiseWalletAdapter()
66
69
  ];
67
70
 
68
71
  const App: React.FC = () => {
@@ -0,0 +1,56 @@
1
+ import { MaybeHexString } from 'aptos';
2
+ import { TransactionPayload, HexEncodedBytes } from 'aptos/src/generated';
3
+ import { AccountKeys, BaseWalletAdapter, WalletName, WalletReadyState } from './BaseAdapter';
4
+ interface ConnectHyperPayAccount {
5
+ address: MaybeHexString;
6
+ method: string;
7
+ publicKey: MaybeHexString;
8
+ status: number;
9
+ }
10
+ interface HyperPayAccount {
11
+ address: MaybeHexString;
12
+ publicKey: MaybeHexString;
13
+ authKey: MaybeHexString;
14
+ isConnected: boolean;
15
+ }
16
+ interface IHyperPayWallet {
17
+ connect: () => Promise<ConnectHyperPayAccount>;
18
+ account(): Promise<HyperPayAccount>;
19
+ isConnected(): Promise<boolean>;
20
+ generateTransaction(sender: MaybeHexString, payload: any, options?: any): Promise<any>;
21
+ signAndSubmitTransaction(transaction: TransactionPayload): Promise<HexEncodedBytes>;
22
+ signTransaction(transaction: TransactionPayload): Promise<Uint8Array>;
23
+ signMessage(message: string): Promise<{
24
+ signature: string;
25
+ }>;
26
+ disconnect(): Promise<void>;
27
+ }
28
+ export declare const HyperPayWalletName: WalletName<"HyperPay">;
29
+ export interface HyperPayWalletAdapterConfig {
30
+ provider?: IHyperPayWallet;
31
+ timeout?: number;
32
+ }
33
+ export declare class HyperPayWalletAdapter extends BaseWalletAdapter {
34
+ name: WalletName<"HyperPay">;
35
+ url: string;
36
+ icon: string;
37
+ protected _provider: IHyperPayWallet | undefined;
38
+ protected _timeout: number;
39
+ protected _readyState: WalletReadyState;
40
+ protected _connecting: boolean;
41
+ protected _wallet: HyperPayAccount | null;
42
+ constructor({ timeout }?: HyperPayWalletAdapterConfig);
43
+ get publicAccount(): AccountKeys;
44
+ get connecting(): boolean;
45
+ get connected(): boolean;
46
+ get readyState(): WalletReadyState;
47
+ connect(): Promise<void>;
48
+ disconnect(): Promise<void>;
49
+ signTransaction(transactionPyld: TransactionPayload, options?: any): Promise<Uint8Array>;
50
+ signAndSubmitTransaction(transactionPyld: TransactionPayload, options?: any): Promise<{
51
+ hash: HexEncodedBytes;
52
+ }>;
53
+ signMessage(message: string): Promise<string>;
54
+ }
55
+ export {};
56
+ //# sourceMappingURL=HyperPayWallet.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HyperPayWallet.d.ts","sourceRoot":"","sources":["../../src/WalletAdapters/HyperPayWallet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAS1E,OAAO,EACL,WAAW,EACX,iBAAiB,EAEjB,UAAU,EACV,gBAAgB,EACjB,MAAM,eAAe,CAAC;AAEvB,UAAU,sBAAsB;IAC9B,OAAO,EAAE,cAAc,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,cAAc,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,eAAe;IACvB,OAAO,EAAE,cAAc,CAAC;IACxB,SAAS,EAAE,cAAc,CAAC;IAC1B,OAAO,EAAE,cAAc,CAAC;IACxB,WAAW,EAAE,OAAO,CAAC;CACtB;AACD,UAAU,eAAe;IACvB,OAAO,EAAE,MAAM,OAAO,CAAC,sBAAsB,CAAC,CAAC;IAC/C,OAAO,IAAI,OAAO,CAAC,eAAe,CAAC,CAAC;IACpC,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAChC,mBAAmB,CAAC,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IACvF,wBAAwB,CAAC,WAAW,EAAE,kBAAkB,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IACpF,eAAe,CAAC,WAAW,EAAE,kBAAkB,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IACtE,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC7D,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7B;AAQD,eAAO,MAAM,kBAAkB,wBAAuC,CAAC;AAEvE,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,EAAE,eAAe,CAAC;IAE3B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,qBAAsB,SAAQ,iBAAiB;IAC1D,IAAI,yBAAsB;IAE1B,GAAG,SAAgC;IAEnC,IAAI,SAC20B;IAE/0B,SAAS,CAAC,SAAS,EAAE,eAAe,GAAG,SAAS,CAAC;IAGjD,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,eAAe,GAAG,IAAI,CAAC;gBAE9B,EAGV,OAAe,EAChB,GAAE,2BAAgC;IAqBnC,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;IAuCxB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAgB3B,eAAe,CAAC,eAAe,EAAE,kBAAkB,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC;IAmBxF,wBAAwB,CAC5B,eAAe,EAAE,kBAAkB,EACnC,OAAO,CAAC,EAAE,GAAG,GACZ,OAAO,CAAC;QAAE,IAAI,EAAE,eAAe,CAAA;KAAE,CAAC;IAmB/B,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAiBpD"}
@@ -0,0 +1,180 @@
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.HyperPayWalletAdapter = exports.HyperPayWalletName = void 0;
13
+ const errors_1 = require("../WalletProviders/errors");
14
+ const BaseAdapter_1 = require("./BaseAdapter");
15
+ exports.HyperPayWalletName = 'HyperPay';
16
+ class HyperPayWalletAdapter extends BaseAdapter_1.BaseWalletAdapter {
17
+ constructor({
18
+ // provider,
19
+ // network = WalletAdapterNetwork.Mainnet,
20
+ timeout = 10000 } = {}) {
21
+ super();
22
+ this.name = exports.HyperPayWalletName;
23
+ this.url = 'https://www.hyperpay.tech/';
24
+ this.icon = 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMjE1IDEyMTUiPjxwYXRoIGQ9Ik02MDcuNSAwQzk0My4wMTMgMCAxMjE1IDI3MS45ODcgMTIxNSA2MDcuNVM5NDMuMDEzIDEyMTUgNjA3LjUgMTIxNSAwIDk0My4wMTMgMCA2MDcuNSAyNzEuOTg3IDAgNjA3LjUgMHpNMzUxLjY4IDM3MS4zMTVzMy43MDgtNzIuOSA3Ny43Ni03Mi45aDIwNC4xMnMxMTkuNDM3LS4xIDIwNC4xMiA3NS4zM2MwIDAgMTExLjg0MyA5My42MTIgMTE2LjY0IDIzNS43MSAwIDAgMS45NjIgMTE5LjA0NS03Mi45IDIxMS40MSAwIDAtNzcuOTMxIDEyMS41LTI2Mi40NCAxMjEuNUg0NDEuNTlzLTg5LjkxIDExLjA0OS04OS45MS04NS4wNXYtNDg2ek0xMTkuMzQ0IDU1My42NTlzLjkwNi0xNy44MiAxOS4wMDgtMTcuODJoNDkuOXMyOS4yLS4wMjMgNDkuOSAxOC40MTRjMCAwIDI3LjMzOSAyMi44ODMgMjguNTEyIDU3LjYxOCAwIDAgLjQ4IDI5LjEtMTcuODIgNTEuNjc4IDAgMC0xOS4wNSAyOS43LTY0LjE1MiAyOS43aC00My4zN3MtMjEuOTc4IDIuNy0yMS45NzgtMjAuNzl2LTExOC44eiIgZmlsbD0iIzE1N0VGQiIgZmlsbC1ydWxlPSJldmVub2RkIi8+PC9zdmc+';
25
+ this._readyState = typeof window === 'undefined' || typeof document === 'undefined'
26
+ ? BaseAdapter_1.WalletReadyState.Unsupported
27
+ : BaseAdapter_1.WalletReadyState.NotDetected;
28
+ this._provider = typeof window !== 'undefined' ? window.hyperpay : undefined;
29
+ // this._network = network;
30
+ this._timeout = timeout;
31
+ this._connecting = false;
32
+ this._wallet = null;
33
+ if (typeof window !== 'undefined' && this._readyState !== BaseAdapter_1.WalletReadyState.Unsupported) {
34
+ (0, BaseAdapter_1.scopePollingDetectionStrategy)(() => {
35
+ if (window.hyperpay) {
36
+ this._readyState = BaseAdapter_1.WalletReadyState.Installed;
37
+ this.emit('readyStateChange', this._readyState);
38
+ return true;
39
+ }
40
+ return false;
41
+ });
42
+ }
43
+ }
44
+ get publicAccount() {
45
+ var _a, _b, _c;
46
+ return {
47
+ publicKey: ((_a = this._wallet) === null || _a === void 0 ? void 0 : _a.publicKey) || null,
48
+ address: ((_b = this._wallet) === null || _b === void 0 ? void 0 : _b.address) || null,
49
+ authKey: ((_c = this._wallet) === null || _c === void 0 ? void 0 : _c.authKey) || null
50
+ };
51
+ }
52
+ get connecting() {
53
+ return this._connecting;
54
+ }
55
+ get connected() {
56
+ var _a;
57
+ return !!((_a = this._wallet) === null || _a === void 0 ? void 0 : _a.isConnected);
58
+ }
59
+ get readyState() {
60
+ return this._readyState;
61
+ }
62
+ connect() {
63
+ var _a;
64
+ return __awaiter(this, void 0, void 0, function* () {
65
+ try {
66
+ if (this.connected || this.connecting)
67
+ return;
68
+ if (!(this._readyState === BaseAdapter_1.WalletReadyState.Loadable ||
69
+ this._readyState === BaseAdapter_1.WalletReadyState.Installed))
70
+ throw new errors_1.WalletNotReadyError();
71
+ this._connecting = true;
72
+ const provider = this._provider || window.hyperpay;
73
+ const isConnected = yield (provider === null || provider === void 0 ? void 0 : provider.isConnected());
74
+ if (isConnected) {
75
+ yield (provider === null || provider === void 0 ? void 0 : provider.disconnect());
76
+ }
77
+ const response = yield (provider === null || provider === void 0 ? void 0 : provider.connect());
78
+ if (!response) {
79
+ throw new errors_1.WalletNotConnectedError('No connect response');
80
+ }
81
+ const walletAccount = yield (provider === null || provider === void 0 ? void 0 : provider.account());
82
+ if (walletAccount) {
83
+ this._wallet = Object.assign(Object.assign({}, walletAccount), { isConnected: true });
84
+ }
85
+ this.emit('connect', ((_a = this._wallet) === null || _a === void 0 ? void 0 : _a.address) || '');
86
+ }
87
+ catch (error) {
88
+ this.emit('error', new Error(error));
89
+ throw error;
90
+ }
91
+ finally {
92
+ this._connecting = false;
93
+ }
94
+ });
95
+ }
96
+ disconnect() {
97
+ return __awaiter(this, void 0, void 0, function* () {
98
+ const wallet = this._wallet;
99
+ const provider = this._provider || window.hyperpay;
100
+ if (wallet) {
101
+ this._wallet = null;
102
+ try {
103
+ yield (provider === null || provider === void 0 ? void 0 : provider.disconnect());
104
+ }
105
+ catch (error) {
106
+ this.emit('error', new errors_1.WalletDisconnectionError(error === null || error === void 0 ? void 0 : error.message, error));
107
+ }
108
+ }
109
+ this.emit('disconnect');
110
+ });
111
+ }
112
+ signTransaction(transactionPyld, options) {
113
+ return __awaiter(this, void 0, void 0, function* () {
114
+ try {
115
+ const wallet = this._wallet;
116
+ const provider = this._provider || window.hyperpay;
117
+ if (!wallet || !provider)
118
+ throw new errors_1.WalletNotConnectedError();
119
+ const tx = yield provider.generateTransaction(wallet.address || '', transactionPyld, options);
120
+ if (!tx)
121
+ throw new Error('Cannot generate transaction');
122
+ const response = yield (provider === null || provider === void 0 ? void 0 : provider.signTransaction(tx));
123
+ if (!response) {
124
+ throw new Error('No response');
125
+ }
126
+ return response;
127
+ }
128
+ catch (error) {
129
+ this.emit('error', new errors_1.WalletSignTransactionError(error));
130
+ throw error;
131
+ }
132
+ });
133
+ }
134
+ signAndSubmitTransaction(transactionPyld, options) {
135
+ return __awaiter(this, void 0, void 0, function* () {
136
+ try {
137
+ const wallet = this._wallet;
138
+ const provider = this._provider || window.hyperpay;
139
+ if (!wallet || !provider)
140
+ throw new errors_1.WalletNotConnectedError();
141
+ const tx = yield provider.generateTransaction(wallet.address || '', transactionPyld, options);
142
+ if (!tx)
143
+ throw new Error('Cannot generate transaction');
144
+ const response = yield (provider === null || provider === void 0 ? void 0 : provider.signAndSubmitTransaction(tx));
145
+ if (!response) {
146
+ throw new Error('No response');
147
+ }
148
+ return { hash: response };
149
+ }
150
+ catch (error) {
151
+ this.emit('error', new errors_1.WalletSignAndSubmitMessageError(error));
152
+ throw error;
153
+ }
154
+ });
155
+ }
156
+ signMessage(message) {
157
+ return __awaiter(this, void 0, void 0, function* () {
158
+ try {
159
+ const wallet = this._wallet;
160
+ const provider = this._provider || window.hyperpay;
161
+ if (!wallet || !provider)
162
+ throw new errors_1.WalletNotConnectedError();
163
+ const response = yield (provider === null || provider === void 0 ? void 0 : provider.signMessage(message));
164
+ if (response === null || response === void 0 ? void 0 : response.signature) {
165
+ return response === null || response === void 0 ? void 0 : response.signature;
166
+ }
167
+ else {
168
+ throw new Error('Sign Message failed');
169
+ }
170
+ }
171
+ catch (error) {
172
+ const errMsg = error.message;
173
+ this.emit('error', new errors_1.WalletSignMessageError(errMsg));
174
+ throw error;
175
+ }
176
+ });
177
+ }
178
+ }
179
+ exports.HyperPayWalletAdapter = HyperPayWalletAdapter;
180
+ //# sourceMappingURL=HyperPayWallet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HyperPayWallet.js","sourceRoot":"","sources":["../../src/WalletAdapters/HyperPayWallet.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,53 @@
1
+ import { HexEncodedBytes, TransactionPayload } from 'aptos/src/generated';
2
+ import { AccountKeys, BaseWalletAdapter, WalletName, WalletReadyState } from './BaseAdapter';
3
+ import { MaybeHexString } from 'aptos';
4
+ interface RiseAccount {
5
+ address: MaybeHexString;
6
+ publicKey: MaybeHexString;
7
+ authKey: MaybeHexString;
8
+ isConnected: boolean;
9
+ }
10
+ interface IRiseWallet {
11
+ connect: () => Promise<{
12
+ address: string;
13
+ }>;
14
+ account(): Promise<RiseAccount>;
15
+ isConnected: () => Promise<boolean>;
16
+ signAndSubmitTransaction(transaction: any): Promise<{
17
+ hash: HexEncodedBytes;
18
+ }>;
19
+ signTransaction(transaction: any, options?: any): Promise<Uint8Array>;
20
+ signMessage(message: string): Promise<{
21
+ signature: string;
22
+ }>;
23
+ disconnect(): Promise<void>;
24
+ }
25
+ export declare const RiseWalletName: WalletName<"Rise Wallet">;
26
+ export interface RiseWalletAdapterConfig {
27
+ provider?: IRiseWallet;
28
+ timeout?: number;
29
+ }
30
+ export declare class RiseWalletAdapter extends BaseWalletAdapter {
31
+ name: WalletName<"Rise Wallet">;
32
+ url: string;
33
+ icon: string;
34
+ protected _provider: IRiseWallet | undefined;
35
+ protected _timeout: number;
36
+ protected _readyState: WalletReadyState;
37
+ protected _connecting: boolean;
38
+ protected _wallet: any | null;
39
+ constructor({ timeout }?: RiseWalletAdapterConfig);
40
+ get publicAccount(): AccountKeys;
41
+ get connecting(): boolean;
42
+ get connected(): boolean;
43
+ get readyState(): WalletReadyState;
44
+ connect(): Promise<void>;
45
+ disconnect(): Promise<void>;
46
+ signTransaction(transaction: TransactionPayload): Promise<Uint8Array>;
47
+ signAndSubmitTransaction(transaction: TransactionPayload): Promise<{
48
+ hash: HexEncodedBytes;
49
+ }>;
50
+ signMessage(message: string): Promise<string>;
51
+ }
52
+ export {};
53
+ //# sourceMappingURL=RiseWallet.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RiseWallet.d.ts","sourceRoot":"","sources":["../../src/WalletAdapters/RiseWallet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAQ1E,OAAO,EACL,WAAW,EACX,iBAAiB,EAEjB,UAAU,EACV,gBAAgB,EACjB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAEvC,UAAU,WAAW;IACnB,OAAO,EAAE,cAAc,CAAC;IACxB,SAAS,EAAE,cAAc,CAAC;IAC1B,OAAO,EAAE,cAAc,CAAC;IACxB,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,UAAU,WAAW;IACnB,OAAO,EAAE,MAAM,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC5C,OAAO,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC;IAChC,WAAW,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IACpC,wBAAwB,CAAC,WAAW,EAAE,GAAG,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,eAAe,CAAA;KAAE,CAAC,CAAC;IAC/E,eAAe,CAAC,WAAW,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IACtE,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC7D,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7B;AAQD,eAAO,MAAM,cAAc,2BAA6C,CAAC;AAEzE,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,EAAE,WAAW,CAAC;IAEvB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,iBAAkB,SAAQ,iBAAiB;IACtD,IAAI,4BAAkB;IAEtB,GAAG,SAAgF;IAEnF,IAAI,SAA2C;IAE/C,SAAS,CAAC,SAAS,EAAE,WAAW,GAAG,SAAS,CAAC;IAG7C,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,GAAG,GAAG,IAAI,CAAC;gBAElB,EAGV,OAAe,EAChB,GAAE,uBAA4B;IAqB/B,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;IA6CxB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAgB3B,eAAe,CAAC,WAAW,EAAE,kBAAkB,GAAG,OAAO,CAAC,UAAU,CAAC;IAmBrE,wBAAwB,CAC5B,WAAW,EAAE,kBAAkB,GAC9B,OAAO,CAAC;QAAE,IAAI,EAAE,eAAe,CAAA;KAAE,CAAC;IAmB/B,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAmBpD"}
@@ -0,0 +1,187 @@
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.RiseWalletAdapter = exports.RiseWalletName = void 0;
13
+ const WalletProviders_1 = require("../WalletProviders");
14
+ const BaseAdapter_1 = require("./BaseAdapter");
15
+ exports.RiseWalletName = 'Rise Wallet';
16
+ class RiseWalletAdapter extends BaseAdapter_1.BaseWalletAdapter {
17
+ constructor({
18
+ // provider,
19
+ // network = WalletAdapterNetwork.Mainnet,
20
+ timeout = 10000 } = {}) {
21
+ super();
22
+ this.name = exports.RiseWalletName;
23
+ this.url = 'https://chrome.google.com/webstore/detail/hbbgbephgojikajhfbomhlmmollphcad';
24
+ this.icon = 'https://static.risewallet.io/logo.png';
25
+ this._readyState = typeof window === 'undefined' || typeof document === 'undefined'
26
+ ? BaseAdapter_1.WalletReadyState.Unsupported
27
+ : BaseAdapter_1.WalletReadyState.NotDetected;
28
+ this._provider = typeof window !== 'undefined' ? window.rise : undefined;
29
+ // this._network = network;
30
+ this._timeout = timeout;
31
+ this._connecting = false;
32
+ this._wallet = null;
33
+ if (typeof window !== 'undefined' && this._readyState !== BaseAdapter_1.WalletReadyState.Unsupported) {
34
+ (0, BaseAdapter_1.scopePollingDetectionStrategy)(() => {
35
+ if (window.rise) {
36
+ this._readyState = BaseAdapter_1.WalletReadyState.Installed;
37
+ this.emit('readyStateChange', this._readyState);
38
+ return true;
39
+ }
40
+ return false;
41
+ });
42
+ }
43
+ }
44
+ get publicAccount() {
45
+ var _a, _b, _c;
46
+ return {
47
+ publicKey: ((_a = this._wallet) === null || _a === void 0 ? void 0 : _a.publicKey) || null,
48
+ address: ((_b = this._wallet) === null || _b === void 0 ? void 0 : _b.address) || null,
49
+ authKey: ((_c = this._wallet) === null || _c === void 0 ? void 0 : _c.authKey) || null
50
+ };
51
+ }
52
+ get connecting() {
53
+ return this._connecting;
54
+ }
55
+ get connected() {
56
+ var _a;
57
+ return !!((_a = this._wallet) === null || _a === void 0 ? void 0 : _a.isConnected);
58
+ }
59
+ get readyState() {
60
+ return this._readyState;
61
+ }
62
+ connect() {
63
+ var _a;
64
+ return __awaiter(this, void 0, void 0, function* () {
65
+ try {
66
+ if (this.connected || this.connecting)
67
+ return;
68
+ if (!(this._readyState === BaseAdapter_1.WalletReadyState.Loadable ||
69
+ this._readyState === BaseAdapter_1.WalletReadyState.Installed))
70
+ throw new WalletProviders_1.WalletNotReadyError();
71
+ this._connecting = true;
72
+ const provider = this._provider || window.rise;
73
+ const isConnected = yield ((_a = this._provider) === null || _a === void 0 ? void 0 : _a.isConnected());
74
+ if (isConnected === true) {
75
+ yield (provider === null || provider === void 0 ? void 0 : provider.disconnect());
76
+ }
77
+ const response = yield (provider === null || provider === void 0 ? void 0 : provider.connect());
78
+ if (!response) {
79
+ throw new WalletProviders_1.WalletNotConnectedError('User has rejected the request');
80
+ }
81
+ const account = yield (provider === null || provider === void 0 ? void 0 : provider.account());
82
+ if (account) {
83
+ const { publicKey, address, authKey } = account;
84
+ this._wallet = {
85
+ publicKey,
86
+ address,
87
+ authKey,
88
+ isConnected: true
89
+ };
90
+ this.emit('connect', this._wallet.publicKey);
91
+ }
92
+ }
93
+ catch (error) {
94
+ this.emit('error', error);
95
+ throw error;
96
+ }
97
+ finally {
98
+ this._connecting = false;
99
+ }
100
+ });
101
+ }
102
+ disconnect() {
103
+ return __awaiter(this, void 0, void 0, function* () {
104
+ const wallet = this._wallet;
105
+ if (wallet) {
106
+ this._wallet = null;
107
+ try {
108
+ const provider = this._provider || window.rise;
109
+ yield (provider === null || provider === void 0 ? void 0 : provider.disconnect());
110
+ }
111
+ catch (error) {
112
+ this.emit('error', new WalletProviders_1.WalletDisconnectionError(error === null || error === void 0 ? void 0 : error.message, error));
113
+ }
114
+ }
115
+ this.emit('disconnect');
116
+ });
117
+ }
118
+ signTransaction(transaction) {
119
+ return __awaiter(this, void 0, void 0, function* () {
120
+ try {
121
+ const wallet = this._wallet;
122
+ const provider = this._provider || window.rise;
123
+ if (!wallet || !provider)
124
+ throw new WalletProviders_1.WalletNotConnectedError();
125
+ const response = yield (provider === null || provider === void 0 ? void 0 : provider.signTransaction(transaction));
126
+ if (response) {
127
+ return response;
128
+ }
129
+ else {
130
+ throw new Error('Sign Transaction failed');
131
+ }
132
+ }
133
+ catch (error) {
134
+ const errMsg = error.message;
135
+ this.emit('error', new WalletProviders_1.WalletSignTransactionError(errMsg));
136
+ throw error;
137
+ }
138
+ });
139
+ }
140
+ signAndSubmitTransaction(transaction) {
141
+ return __awaiter(this, void 0, void 0, function* () {
142
+ try {
143
+ const wallet = this._wallet;
144
+ const provider = this._provider || window.rise;
145
+ if (!wallet || !provider)
146
+ throw new WalletProviders_1.WalletNotConnectedError();
147
+ const response = yield (provider === null || provider === void 0 ? void 0 : provider.signAndSubmitTransaction(transaction));
148
+ if (response) {
149
+ return response;
150
+ }
151
+ else {
152
+ throw new Error('Transaction failed');
153
+ }
154
+ }
155
+ catch (error) {
156
+ const errMsg = error.message;
157
+ this.emit('error', new WalletProviders_1.WalletSignTransactionError(errMsg));
158
+ throw error;
159
+ }
160
+ });
161
+ }
162
+ signMessage(message) {
163
+ return __awaiter(this, void 0, void 0, function* () {
164
+ try {
165
+ const wallet = this._wallet;
166
+ const provider = this._provider || window.rise;
167
+ if (!wallet || !provider)
168
+ throw new WalletProviders_1.WalletNotConnectedError();
169
+ const response = yield (provider === null || provider === void 0 ? void 0 : provider.signMessage(message));
170
+ if (response === null || response === void 0 ? void 0 : response.signature) {
171
+ return response.signature;
172
+ }
173
+ else {
174
+ throw new Error('Sign Message failed');
175
+ }
176
+ }
177
+ catch (error) {
178
+ console.log('err', error);
179
+ const errMsg = error.message;
180
+ this.emit('error', new WalletProviders_1.WalletSignMessageError(errMsg));
181
+ throw error;
182
+ }
183
+ });
184
+ }
185
+ }
186
+ exports.RiseWalletAdapter = RiseWalletAdapter;
187
+ //# sourceMappingURL=RiseWallet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RiseWallet.js","sourceRoot":"","sources":["../../src/WalletAdapters/RiseWallet.ts"],"names":[],"mappings":"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"}
@@ -5,5 +5,7 @@ export * from './HippoWallet';
5
5
  export * from './MartianWallet';
6
6
  export * from './FewchaWallet';
7
7
  export * from './PontemWallet';
8
+ export * from './RiseWallet';
8
9
  export * from './SpikaWallet';
10
+ export * from './HyperPayWallet';
9
11
  //# sourceMappingURL=index.d.ts.map
@@ -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,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAE/B,cAAc,eAAe,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,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAE/B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC"}
@@ -22,5 +22,7 @@ __exportStar(require("./MartianWallet"), exports);
22
22
  __exportStar(require("./FewchaWallet"), exports);
23
23
  __exportStar(require("./PontemWallet"), exports);
24
24
  // export * from './NightlyWallet';
25
+ __exportStar(require("./RiseWallet"), exports);
25
26
  __exportStar(require("./SpikaWallet"), exports);
27
+ __exportStar(require("./HyperPayWallet"), exports);
26
28
  //# 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,iDAA+B;AAC/B,iDAA+B;AAC/B,mCAAmC;AACnC,gDAA8B"}
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,iDAA+B;AAC/B,iDAA+B;AAC/B,mCAAmC;AACnC,+CAA6B;AAC7B,gDAA8B;AAC9B,mDAAiC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@manahippo/aptos-wallet-adapter",
3
- "version": "0.4.2",
3
+ "version": "0.4.3",
4
4
  "main": "dist/index.js",
5
5
  "typings": "dist/index.d.ts",
6
6
  "files": [
@@ -0,0 +1,237 @@
1
+ import { MaybeHexString } from 'aptos';
2
+ import { TransactionPayload, HexEncodedBytes } from 'aptos/src/generated';
3
+ import {
4
+ WalletDisconnectionError,
5
+ WalletNotConnectedError,
6
+ WalletNotReadyError,
7
+ WalletSignAndSubmitMessageError,
8
+ WalletSignMessageError,
9
+ WalletSignTransactionError
10
+ } from '../WalletProviders/errors';
11
+ import {
12
+ AccountKeys,
13
+ BaseWalletAdapter,
14
+ scopePollingDetectionStrategy,
15
+ WalletName,
16
+ WalletReadyState
17
+ } from './BaseAdapter';
18
+
19
+ interface ConnectHyperPayAccount {
20
+ address: MaybeHexString;
21
+ method: string;
22
+ publicKey: MaybeHexString;
23
+ status: number;
24
+ }
25
+
26
+ interface HyperPayAccount {
27
+ address: MaybeHexString;
28
+ publicKey: MaybeHexString;
29
+ authKey: MaybeHexString;
30
+ isConnected: boolean;
31
+ }
32
+ interface IHyperPayWallet {
33
+ connect: () => Promise<ConnectHyperPayAccount>;
34
+ account(): Promise<HyperPayAccount>;
35
+ isConnected(): Promise<boolean>;
36
+ generateTransaction(sender: MaybeHexString, payload: any, options?: any): Promise<any>;
37
+ signAndSubmitTransaction(transaction: TransactionPayload): Promise<HexEncodedBytes>;
38
+ signTransaction(transaction: TransactionPayload): Promise<Uint8Array>;
39
+ signMessage(message: string): Promise<{ signature: string }>;
40
+ disconnect(): Promise<void>;
41
+ }
42
+
43
+ interface HyperPayWindow extends Window {
44
+ hyperpay?: IHyperPayWallet;
45
+ }
46
+
47
+ declare const window: HyperPayWindow;
48
+
49
+ export const HyperPayWalletName = 'HyperPay' as WalletName<'HyperPay'>;
50
+
51
+ export interface HyperPayWalletAdapterConfig {
52
+ provider?: IHyperPayWallet;
53
+ // network?: WalletAdapterNetwork;
54
+ timeout?: number;
55
+ }
56
+
57
+ export class HyperPayWalletAdapter extends BaseWalletAdapter {
58
+ name = HyperPayWalletName;
59
+
60
+ url = 'https://www.hyperpay.tech/';
61
+
62
+ icon =
63
+ 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMjE1IDEyMTUiPjxwYXRoIGQ9Ik02MDcuNSAwQzk0My4wMTMgMCAxMjE1IDI3MS45ODcgMTIxNSA2MDcuNVM5NDMuMDEzIDEyMTUgNjA3LjUgMTIxNSAwIDk0My4wMTMgMCA2MDcuNSAyNzEuOTg3IDAgNjA3LjUgMHpNMzUxLjY4IDM3MS4zMTVzMy43MDgtNzIuOSA3Ny43Ni03Mi45aDIwNC4xMnMxMTkuNDM3LS4xIDIwNC4xMiA3NS4zM2MwIDAgMTExLjg0MyA5My42MTIgMTE2LjY0IDIzNS43MSAwIDAgMS45NjIgMTE5LjA0NS03Mi45IDIxMS40MSAwIDAtNzcuOTMxIDEyMS41LTI2Mi40NCAxMjEuNUg0NDEuNTlzLTg5LjkxIDExLjA0OS04OS45MS04NS4wNXYtNDg2ek0xMTkuMzQ0IDU1My42NTlzLjkwNi0xNy44MiAxOS4wMDgtMTcuODJoNDkuOXMyOS4yLS4wMjMgNDkuOSAxOC40MTRjMCAwIDI3LjMzOSAyMi44ODMgMjguNTEyIDU3LjYxOCAwIDAgLjQ4IDI5LjEtMTcuODIgNTEuNjc4IDAgMC0xOS4wNSAyOS43LTY0LjE1MiAyOS43aC00My4zN3MtMjEuOTc4IDIuNy0yMS45NzgtMjAuNzl2LTExOC44eiIgZmlsbD0iIzE1N0VGQiIgZmlsbC1ydWxlPSJldmVub2RkIi8+PC9zdmc+';
64
+
65
+ protected _provider: IHyperPayWallet | undefined;
66
+
67
+ // protected _network: WalletAdapterNetwork;
68
+ protected _timeout: number;
69
+
70
+ protected _readyState: WalletReadyState =
71
+ typeof window === 'undefined' || typeof document === 'undefined'
72
+ ? WalletReadyState.Unsupported
73
+ : WalletReadyState.NotDetected;
74
+
75
+ protected _connecting: boolean;
76
+
77
+ protected _wallet: HyperPayAccount | null;
78
+
79
+ constructor({
80
+ // provider,
81
+ // network = WalletAdapterNetwork.Mainnet,
82
+ timeout = 10000
83
+ }: HyperPayWalletAdapterConfig = {}) {
84
+ super();
85
+
86
+ this._provider = typeof window !== 'undefined' ? window.hyperpay : undefined;
87
+ // this._network = network;
88
+ this._timeout = timeout;
89
+ this._connecting = false;
90
+ this._wallet = null;
91
+
92
+ if (typeof window !== 'undefined' && this._readyState !== WalletReadyState.Unsupported) {
93
+ scopePollingDetectionStrategy(() => {
94
+ if (window.hyperpay) {
95
+ this._readyState = WalletReadyState.Installed;
96
+ this.emit('readyStateChange', this._readyState);
97
+ return true;
98
+ }
99
+ return false;
100
+ });
101
+ }
102
+ }
103
+
104
+ get publicAccount(): AccountKeys {
105
+ return {
106
+ publicKey: this._wallet?.publicKey || null,
107
+ address: this._wallet?.address || null,
108
+ authKey: this._wallet?.authKey || null
109
+ };
110
+ }
111
+
112
+ get connecting(): boolean {
113
+ return this._connecting;
114
+ }
115
+
116
+ get connected(): boolean {
117
+ return !!this._wallet?.isConnected;
118
+ }
119
+
120
+ get readyState(): WalletReadyState {
121
+ return this._readyState;
122
+ }
123
+
124
+ async connect(): Promise<void> {
125
+ try {
126
+ if (this.connected || this.connecting) return;
127
+ if (
128
+ !(
129
+ this._readyState === WalletReadyState.Loadable ||
130
+ this._readyState === WalletReadyState.Installed
131
+ )
132
+ )
133
+ throw new WalletNotReadyError();
134
+ this._connecting = true;
135
+
136
+ const provider = this._provider || window.hyperpay;
137
+ const isConnected = await provider?.isConnected();
138
+ if (isConnected) {
139
+ await provider?.disconnect();
140
+ }
141
+ const response = await provider?.connect();
142
+
143
+ if (!response) {
144
+ throw new WalletNotConnectedError('No connect response');
145
+ }
146
+
147
+ const walletAccount = await provider?.account();
148
+ if (walletAccount) {
149
+ this._wallet = {
150
+ ...walletAccount,
151
+ isConnected: true
152
+ };
153
+ }
154
+ this.emit('connect', this._wallet?.address || '');
155
+ } catch (error: any) {
156
+ this.emit('error', new 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
+ const provider = this._provider || window.hyperpay;
166
+ if (wallet) {
167
+ this._wallet = null;
168
+
169
+ try {
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(transactionPyld: TransactionPayload, options?: any): Promise<Uint8Array> {
180
+ try {
181
+ const wallet = this._wallet;
182
+ const provider = this._provider || window.hyperpay;
183
+ if (!wallet || !provider) throw new WalletNotConnectedError();
184
+ const tx = await provider.generateTransaction(wallet.address || '', transactionPyld, options);
185
+ if (!tx) throw new Error('Cannot generate transaction');
186
+ const response = await provider?.signTransaction(tx);
187
+
188
+ if (!response) {
189
+ throw new Error('No response');
190
+ }
191
+ return response;
192
+ } catch (error: any) {
193
+ this.emit('error', new WalletSignTransactionError(error));
194
+ throw error;
195
+ }
196
+ }
197
+
198
+ async signAndSubmitTransaction(
199
+ transactionPyld: TransactionPayload,
200
+ options?: any
201
+ ): Promise<{ hash: HexEncodedBytes }> {
202
+ try {
203
+ const wallet = this._wallet;
204
+ const provider = this._provider || window.hyperpay;
205
+ if (!wallet || !provider) throw new WalletNotConnectedError();
206
+ const tx = await provider.generateTransaction(wallet.address || '', transactionPyld, options);
207
+ if (!tx) throw new Error('Cannot generate transaction');
208
+ const response = await provider?.signAndSubmitTransaction(tx);
209
+
210
+ if (!response) {
211
+ throw new Error('No response');
212
+ }
213
+ return { hash: response };
214
+ } catch (error: any) {
215
+ this.emit('error', new WalletSignAndSubmitMessageError(error));
216
+ throw error;
217
+ }
218
+ }
219
+
220
+ async signMessage(message: string): Promise<string> {
221
+ try {
222
+ const wallet = this._wallet;
223
+ const provider = this._provider || window.hyperpay;
224
+ if (!wallet || !provider) throw new WalletNotConnectedError();
225
+ const response = await provider?.signMessage(message);
226
+ if (response?.signature) {
227
+ return response?.signature;
228
+ } else {
229
+ throw new Error('Sign Message failed');
230
+ }
231
+ } catch (error: any) {
232
+ const errMsg = error.message;
233
+ this.emit('error', new WalletSignMessageError(errMsg));
234
+ throw error;
235
+ }
236
+ }
237
+ }
@@ -0,0 +1,235 @@
1
+ import { HexEncodedBytes, TransactionPayload } from 'aptos/src/generated';
2
+ import {
3
+ WalletDisconnectionError,
4
+ WalletNotConnectedError,
5
+ WalletNotReadyError,
6
+ WalletSignMessageError,
7
+ WalletSignTransactionError
8
+ } from '../WalletProviders';
9
+ import {
10
+ AccountKeys,
11
+ BaseWalletAdapter,
12
+ scopePollingDetectionStrategy,
13
+ WalletName,
14
+ WalletReadyState
15
+ } from './BaseAdapter';
16
+ import { MaybeHexString } from 'aptos';
17
+
18
+ interface RiseAccount {
19
+ address: MaybeHexString;
20
+ publicKey: MaybeHexString;
21
+ authKey: MaybeHexString;
22
+ isConnected: boolean;
23
+ }
24
+
25
+ interface IRiseWallet {
26
+ connect: () => Promise<{ address: string }>;
27
+ account(): Promise<RiseAccount>;
28
+ isConnected: () => Promise<boolean>;
29
+ signAndSubmitTransaction(transaction: any): Promise<{ hash: HexEncodedBytes }>;
30
+ signTransaction(transaction: any, options?: any): Promise<Uint8Array>;
31
+ signMessage(message: string): Promise<{ signature: string }>;
32
+ disconnect(): Promise<void>;
33
+ }
34
+
35
+ interface RiseWindow extends Window {
36
+ rise?: IRiseWallet;
37
+ }
38
+
39
+ declare const window: RiseWindow;
40
+
41
+ export const RiseWalletName = 'Rise Wallet' as WalletName<'Rise Wallet'>;
42
+
43
+ export interface RiseWalletAdapterConfig {
44
+ provider?: IRiseWallet;
45
+ // network?: WalletAdapterNetwork;
46
+ timeout?: number;
47
+ }
48
+
49
+ export class RiseWalletAdapter extends BaseWalletAdapter {
50
+ name = RiseWalletName;
51
+
52
+ url = 'https://chrome.google.com/webstore/detail/hbbgbephgojikajhfbomhlmmollphcad';
53
+
54
+ icon = 'https://static.risewallet.io/logo.png';
55
+
56
+ protected _provider: IRiseWallet | undefined;
57
+
58
+ // protected _network: WalletAdapterNetwork;
59
+ protected _timeout: number;
60
+
61
+ protected _readyState: WalletReadyState =
62
+ typeof window === 'undefined' || typeof document === 'undefined'
63
+ ? WalletReadyState.Unsupported
64
+ : WalletReadyState.NotDetected;
65
+
66
+ protected _connecting: boolean;
67
+
68
+ protected _wallet: any | null;
69
+
70
+ constructor({
71
+ // provider,
72
+ // network = WalletAdapterNetwork.Mainnet,
73
+ timeout = 10000
74
+ }: RiseWalletAdapterConfig = {}) {
75
+ super();
76
+
77
+ this._provider = typeof window !== 'undefined' ? window.rise : undefined;
78
+ // this._network = network;
79
+ this._timeout = timeout;
80
+ this._connecting = false;
81
+ this._wallet = null;
82
+
83
+ if (typeof window !== 'undefined' && this._readyState !== WalletReadyState.Unsupported) {
84
+ scopePollingDetectionStrategy(() => {
85
+ if (window.rise) {
86
+ this._readyState = WalletReadyState.Installed;
87
+ this.emit('readyStateChange', this._readyState);
88
+ return true;
89
+ }
90
+ return false;
91
+ });
92
+ }
93
+ }
94
+
95
+ get publicAccount(): AccountKeys {
96
+ return {
97
+ publicKey: this._wallet?.publicKey || null,
98
+ address: this._wallet?.address || null,
99
+ authKey: this._wallet?.authKey || null
100
+ };
101
+ }
102
+
103
+ get connecting(): boolean {
104
+ return this._connecting;
105
+ }
106
+
107
+ get connected(): boolean {
108
+ return !!this._wallet?.isConnected;
109
+ }
110
+
111
+ get readyState(): WalletReadyState {
112
+ return this._readyState;
113
+ }
114
+
115
+ async connect(): Promise<void> {
116
+ try {
117
+ if (this.connected || this.connecting) return;
118
+ if (
119
+ !(
120
+ this._readyState === WalletReadyState.Loadable ||
121
+ this._readyState === WalletReadyState.Installed
122
+ )
123
+ )
124
+ throw new WalletNotReadyError();
125
+ this._connecting = true;
126
+
127
+ const provider = this._provider || window.rise;
128
+ const isConnected = await this._provider?.isConnected();
129
+ if (isConnected === true) {
130
+ await provider?.disconnect();
131
+ }
132
+
133
+ const response = await provider?.connect();
134
+
135
+ if (!response) {
136
+ throw new WalletNotConnectedError('User has rejected the request');
137
+ }
138
+
139
+ const account = await provider?.account();
140
+ if (account) {
141
+ const { publicKey, address, authKey } = account;
142
+
143
+ this._wallet = {
144
+ publicKey,
145
+ address,
146
+ authKey,
147
+ isConnected: true
148
+ };
149
+
150
+ this.emit('connect', this._wallet.publicKey);
151
+ }
152
+ } catch (error: any) {
153
+ this.emit('error', error);
154
+ throw error;
155
+ } finally {
156
+ this._connecting = false;
157
+ }
158
+ }
159
+
160
+ async disconnect(): Promise<void> {
161
+ const wallet = this._wallet;
162
+ if (wallet) {
163
+ this._wallet = null;
164
+
165
+ try {
166
+ const provider = this._provider || window.rise;
167
+ await provider?.disconnect();
168
+ } catch (error: any) {
169
+ this.emit('error', new WalletDisconnectionError(error?.message, error));
170
+ }
171
+ }
172
+
173
+ this.emit('disconnect');
174
+ }
175
+
176
+ async signTransaction(transaction: TransactionPayload): Promise<Uint8Array> {
177
+ try {
178
+ const wallet = this._wallet;
179
+ const provider = this._provider || window.rise;
180
+ if (!wallet || !provider) throw new WalletNotConnectedError();
181
+
182
+ const response = await provider?.signTransaction(transaction);
183
+ if (response) {
184
+ return response;
185
+ } else {
186
+ throw new Error('Sign Transaction failed');
187
+ }
188
+ } catch (error: any) {
189
+ const errMsg = error.message;
190
+ this.emit('error', new WalletSignTransactionError(errMsg));
191
+ throw error;
192
+ }
193
+ }
194
+
195
+ async signAndSubmitTransaction(
196
+ transaction: TransactionPayload
197
+ ): Promise<{ hash: HexEncodedBytes }> {
198
+ try {
199
+ const wallet = this._wallet;
200
+ const provider = this._provider || window.rise;
201
+ if (!wallet || !provider) throw new WalletNotConnectedError();
202
+
203
+ const response = await provider?.signAndSubmitTransaction(transaction);
204
+ if (response) {
205
+ return response;
206
+ } else {
207
+ throw new Error('Transaction failed');
208
+ }
209
+ } catch (error: any) {
210
+ const errMsg = error.message;
211
+ this.emit('error', new WalletSignTransactionError(errMsg));
212
+ throw error;
213
+ }
214
+ }
215
+
216
+ async signMessage(message: string): Promise<string> {
217
+ try {
218
+ const wallet = this._wallet;
219
+ const provider = this._provider || window.rise;
220
+ if (!wallet || !provider) throw new WalletNotConnectedError();
221
+
222
+ const response = await provider?.signMessage(message);
223
+ if (response?.signature) {
224
+ return response.signature;
225
+ } else {
226
+ throw new Error('Sign Message failed');
227
+ }
228
+ } catch (error: any) {
229
+ console.log('err', error);
230
+ const errMsg = error.message;
231
+ this.emit('error', new WalletSignMessageError(errMsg));
232
+ throw error;
233
+ }
234
+ }
235
+ }
@@ -6,4 +6,6 @@ export * from './MartianWallet';
6
6
  export * from './FewchaWallet';
7
7
  export * from './PontemWallet';
8
8
  // export * from './NightlyWallet';
9
+ export * from './RiseWallet';
9
10
  export * from './SpikaWallet';
11
+ export * from './HyperPayWallet';