@hashgraph/hedera-wallet-connect 1.3.7-canary.de9fb58.0 → 1.3.8-canary.09d9623.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{src/lib → lib}/dapp/DAppSigner.d.ts +18 -2
- package/dist/{src/lib → lib}/dapp/DAppSigner.js +109 -30
- package/dist/{src/lib → lib}/dapp/index.d.ts +4 -0
- package/dist/{src/lib → lib}/dapp/index.js +39 -40
- package/dist/{src/lib → lib}/shared/logger.d.ts +1 -0
- package/dist/{src/lib → lib}/shared/logger.js +3 -0
- package/dist/{src/lib → lib}/shared/utils.d.ts +8 -2
- package/dist/{src/lib → lib}/shared/utils.js +10 -2
- package/package.json +4 -3
- package/dist/test/_helpers.d.ts +0 -38
- package/dist/test/_helpers.js +0 -95
- package/dist/test/dapp/DAppConnector.test.d.ts +0 -1
- package/dist/test/dapp/DAppConnector.test.js +0 -232
- package/dist/test/dapp/DAppSigner.test.d.ts +0 -1
- package/dist/test/dapp/DAppSigner.test.js +0 -625
- package/dist/test/shared/logger.test.d.ts +0 -1
- package/dist/test/shared/logger.test.js +0 -129
- package/dist/test/utils.test.d.ts +0 -1
- package/dist/test/utils.test.js +0 -201
- package/dist/test/wallet/methods/wallet-executeTransaction.test.d.ts +0 -1
- package/dist/test/wallet/methods/wallet-executeTransaction.test.js +0 -43
- package/dist/test/wallet/methods/wallet-getNodeAddresses.test.d.ts +0 -1
- package/dist/test/wallet/methods/wallet-getNodeAddresses.test.js +0 -40
- package/dist/test/wallet/methods/wallet-signAndExecuteQuery.test.d.ts +0 -1
- package/dist/test/wallet/methods/wallet-signAndExecuteQuery.test.js +0 -41
- package/dist/test/wallet/methods/wallet-signAndExecuteTransaction.test.d.ts +0 -1
- package/dist/test/wallet/methods/wallet-signAndExecuteTransaction.test.js +0 -48
- package/dist/test/wallet/methods/wallet-signMessage.test.d.ts +0 -1
- package/dist/test/wallet/methods/wallet-signMessage.test.js +0 -60
- package/dist/test/wallet/methods/wallet-signTransaction.test.d.ts +0 -1
- package/dist/test/wallet/methods/wallet-signTransaction.test.js +0 -47
- package/dist/test/wallet/wallet-init.test.d.ts +0 -1
- package/dist/test/wallet/wallet-init.test.js +0 -53
- /package/dist/{src/index.d.ts → index.d.ts} +0 -0
- /package/dist/{src/index.js → index.js} +0 -0
- /package/dist/{src/lib → lib}/index.d.ts +0 -0
- /package/dist/{src/lib → lib}/index.js +0 -0
- /package/dist/{src/lib → lib}/shared/chainIds.d.ts +0 -0
- /package/dist/{src/lib → lib}/shared/chainIds.js +0 -0
- /package/dist/{src/lib → lib}/shared/errors.d.ts +0 -0
- /package/dist/{src/lib → lib}/shared/errors.js +0 -0
- /package/dist/{src/lib → lib}/shared/events.d.ts +0 -0
- /package/dist/{src/lib → lib}/shared/events.js +0 -0
- /package/dist/{src/lib → lib}/shared/extensionController.d.ts +0 -0
- /package/dist/{src/lib → lib}/shared/extensionController.js +0 -0
- /package/dist/{src/lib → lib}/shared/index.d.ts +0 -0
- /package/dist/{src/lib → lib}/shared/index.js +0 -0
- /package/dist/{src/lib → lib}/shared/methods.d.ts +0 -0
- /package/dist/{src/lib → lib}/shared/methods.js +0 -0
- /package/dist/{src/lib → lib}/shared/payloads.d.ts +0 -0
- /package/dist/{src/lib → lib}/shared/payloads.js +0 -0
- /package/dist/{src/lib → lib}/wallet/index.d.ts +0 -0
- /package/dist/{src/lib → lib}/wallet/index.js +0 -0
- /package/dist/{src/lib → lib}/wallet/provider.d.ts +0 -0
- /package/dist/{src/lib → lib}/wallet/provider.js +0 -0
- /package/dist/{src/lib → lib}/wallet/types.d.ts +0 -0
- /package/dist/{src/lib → lib}/wallet/types.js +0 -0
@@ -1,129 +0,0 @@
|
|
1
|
-
import { DefaultLogger } from '../../src/lib/shared/logger';
|
2
|
-
describe('DefaultLogger', () => {
|
3
|
-
let logger;
|
4
|
-
let consoleErrorSpy;
|
5
|
-
let consoleWarnSpy;
|
6
|
-
let consoleInfoSpy;
|
7
|
-
let consoleDebugSpy;
|
8
|
-
beforeEach(() => {
|
9
|
-
// Create fresh spies for each test
|
10
|
-
consoleErrorSpy = jest.spyOn(console, 'error').mockImplementation();
|
11
|
-
consoleWarnSpy = jest.spyOn(console, 'warn').mockImplementation();
|
12
|
-
consoleInfoSpy = jest.spyOn(console, 'info').mockImplementation();
|
13
|
-
consoleDebugSpy = jest.spyOn(console, 'debug').mockImplementation();
|
14
|
-
});
|
15
|
-
afterEach(() => {
|
16
|
-
// Clean up spies
|
17
|
-
consoleErrorSpy.mockRestore();
|
18
|
-
consoleWarnSpy.mockRestore();
|
19
|
-
consoleInfoSpy.mockRestore();
|
20
|
-
consoleDebugSpy.mockRestore();
|
21
|
-
});
|
22
|
-
describe('constructor', () => {
|
23
|
-
it('should set default log level to info', () => {
|
24
|
-
logger = new DefaultLogger();
|
25
|
-
logger.error('test');
|
26
|
-
logger.warn('test');
|
27
|
-
logger.info('test');
|
28
|
-
logger.debug('test');
|
29
|
-
expect(consoleErrorSpy).toHaveBeenCalledWith('[ERROR] test');
|
30
|
-
expect(consoleWarnSpy).toHaveBeenCalledWith('[WARN] test');
|
31
|
-
expect(consoleInfoSpy).toHaveBeenCalledWith('[INFO] test');
|
32
|
-
expect(consoleDebugSpy).not.toHaveBeenCalled();
|
33
|
-
});
|
34
|
-
it('should respect custom log level', () => {
|
35
|
-
logger = new DefaultLogger('debug');
|
36
|
-
logger.error('test');
|
37
|
-
logger.warn('test');
|
38
|
-
logger.info('test');
|
39
|
-
logger.debug('test');
|
40
|
-
expect(consoleErrorSpy).toHaveBeenCalledWith('[ERROR] test');
|
41
|
-
expect(consoleWarnSpy).toHaveBeenCalledWith('[WARN] test');
|
42
|
-
expect(consoleInfoSpy).toHaveBeenCalledWith('[INFO] test');
|
43
|
-
expect(consoleDebugSpy).toHaveBeenCalledWith('[DEBUG] test');
|
44
|
-
});
|
45
|
-
});
|
46
|
-
describe('setLogLevel', () => {
|
47
|
-
beforeEach(() => {
|
48
|
-
logger = new DefaultLogger();
|
49
|
-
});
|
50
|
-
it('should update log level', () => {
|
51
|
-
logger.setLogLevel('error');
|
52
|
-
logger.error('test');
|
53
|
-
logger.warn('test');
|
54
|
-
logger.info('test');
|
55
|
-
logger.debug('test');
|
56
|
-
expect(consoleErrorSpy).toHaveBeenCalledWith('[ERROR] test');
|
57
|
-
expect(consoleWarnSpy).not.toHaveBeenCalled();
|
58
|
-
expect(consoleInfoSpy).not.toHaveBeenCalled();
|
59
|
-
expect(consoleDebugSpy).not.toHaveBeenCalled();
|
60
|
-
});
|
61
|
-
});
|
62
|
-
describe('logging methods', () => {
|
63
|
-
describe('error level', () => {
|
64
|
-
beforeEach(() => {
|
65
|
-
logger = new DefaultLogger('error');
|
66
|
-
});
|
67
|
-
it('should only log errors', () => {
|
68
|
-
logger.error('test error');
|
69
|
-
logger.warn('test warn');
|
70
|
-
logger.info('test info');
|
71
|
-
logger.debug('test debug');
|
72
|
-
expect(consoleErrorSpy).toHaveBeenCalledWith('[ERROR] test error');
|
73
|
-
expect(consoleWarnSpy).not.toHaveBeenCalled();
|
74
|
-
expect(consoleInfoSpy).not.toHaveBeenCalled();
|
75
|
-
expect(consoleDebugSpy).not.toHaveBeenCalled();
|
76
|
-
});
|
77
|
-
it('should handle additional arguments', () => {
|
78
|
-
const error = new Error('test');
|
79
|
-
logger.error('test error', { details: 'more info' }, error);
|
80
|
-
expect(consoleErrorSpy).toHaveBeenCalledWith('[ERROR] test error', { details: 'more info' }, error);
|
81
|
-
});
|
82
|
-
});
|
83
|
-
describe('warn level', () => {
|
84
|
-
beforeEach(() => {
|
85
|
-
logger = new DefaultLogger('warn');
|
86
|
-
});
|
87
|
-
it('should log errors and warnings', () => {
|
88
|
-
logger.error('test error');
|
89
|
-
logger.warn('test warn');
|
90
|
-
logger.info('test info');
|
91
|
-
logger.debug('test debug');
|
92
|
-
expect(consoleErrorSpy).toHaveBeenCalledWith('[ERROR] test error');
|
93
|
-
expect(consoleWarnSpy).toHaveBeenCalledWith('[WARN] test warn');
|
94
|
-
expect(consoleInfoSpy).not.toHaveBeenCalled();
|
95
|
-
expect(consoleDebugSpy).not.toHaveBeenCalled();
|
96
|
-
});
|
97
|
-
});
|
98
|
-
describe('info level', () => {
|
99
|
-
beforeEach(() => {
|
100
|
-
logger = new DefaultLogger('info');
|
101
|
-
});
|
102
|
-
it('should log errors, warnings, and info', () => {
|
103
|
-
logger.error('test error');
|
104
|
-
logger.warn('test warn');
|
105
|
-
logger.info('test info');
|
106
|
-
logger.debug('test debug');
|
107
|
-
expect(consoleErrorSpy).toHaveBeenCalledWith('[ERROR] test error');
|
108
|
-
expect(consoleWarnSpy).toHaveBeenCalledWith('[WARN] test warn');
|
109
|
-
expect(consoleInfoSpy).toHaveBeenCalledWith('[INFO] test info');
|
110
|
-
expect(consoleDebugSpy).not.toHaveBeenCalled();
|
111
|
-
});
|
112
|
-
});
|
113
|
-
describe('debug level', () => {
|
114
|
-
beforeEach(() => {
|
115
|
-
logger = new DefaultLogger('debug');
|
116
|
-
});
|
117
|
-
it('should log all levels', () => {
|
118
|
-
logger.error('test error');
|
119
|
-
logger.warn('test warn');
|
120
|
-
logger.info('test info');
|
121
|
-
logger.debug('test debug');
|
122
|
-
expect(consoleErrorSpy).toHaveBeenCalledWith('[ERROR] test error');
|
123
|
-
expect(consoleWarnSpy).toHaveBeenCalledWith('[WARN] test warn');
|
124
|
-
expect(consoleInfoSpy).toHaveBeenCalledWith('[INFO] test info');
|
125
|
-
expect(consoleDebugSpy).toHaveBeenCalledWith('[DEBUG] test debug');
|
126
|
-
});
|
127
|
-
});
|
128
|
-
});
|
129
|
-
});
|
@@ -1 +0,0 @@
|
|
1
|
-
export {};
|
package/dist/test/utils.test.js
DELETED
@@ -1,201 +0,0 @@
|
|
1
|
-
/*
|
2
|
-
*
|
3
|
-
* Hedera Wallet Connect
|
4
|
-
*
|
5
|
-
* Copyright (C) 2023 Hedera Hashgraph, LLC
|
6
|
-
*
|
7
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
8
|
-
* you may not use this file except in compliance with the License.
|
9
|
-
* You may obtain a copy of the License at
|
10
|
-
*
|
11
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
12
|
-
*
|
13
|
-
* Unless required by applicable law or agreed to in writing, software
|
14
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
15
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
16
|
-
* See the License for the specific language governing permissions and
|
17
|
-
* limitations under the License.
|
18
|
-
*
|
19
|
-
*/
|
20
|
-
import { AccountId, AccountInfoQuery, LedgerId, Query, TopicCreateTransaction, } from '@hashgraph/sdk';
|
21
|
-
import { transactionToBase64String, freezeTransaction, setDefaultNodeAccountIds, base64StringToTransaction, base64StringToUint8Array, Uint8ArrayToBase64String, base64StringToQuery, queryToBase64String, EIPChainIdToLedgerId, ledgerIdToEIPChainId, CAIPChainIdToLedgerId, HederaChainId, ledgerIdToCAIPChainId, networkNameToCAIPChainId, networkNameToEIPChainId, networkNamespaces, HederaSessionEvent, } from '../src';
|
22
|
-
import { prepareTestTransaction, testUserAccountId, useJsonFixture } from './_helpers';
|
23
|
-
describe(freezeTransaction.name, () => {
|
24
|
-
it('should freeze an unfrozen transaction', () => {
|
25
|
-
const txn = prepareTestTransaction(new TopicCreateTransaction());
|
26
|
-
expect(txn.isFrozen()).toBe(false);
|
27
|
-
freezeTransaction(txn);
|
28
|
-
expect(txn.isFrozen()).toBe(true);
|
29
|
-
});
|
30
|
-
it('should have no effect on a frozen transaction', () => {
|
31
|
-
const txn = prepareTestTransaction(new TopicCreateTransaction());
|
32
|
-
txn.freeze();
|
33
|
-
expect(txn.isFrozen()).toBe(true);
|
34
|
-
freezeTransaction(txn);
|
35
|
-
expect(txn.isFrozen()).toBe(true);
|
36
|
-
});
|
37
|
-
});
|
38
|
-
describe(setDefaultNodeAccountIds.name, () => {
|
39
|
-
it('should set default node account ids if none are set', () => {
|
40
|
-
var _a;
|
41
|
-
const txn = new TopicCreateTransaction();
|
42
|
-
expect(txn.nodeAccountIds).toBeNull();
|
43
|
-
setDefaultNodeAccountIds(txn);
|
44
|
-
const result = (_a = txn.nodeAccountIds) === null || _a === void 0 ? void 0 : _a.map((id) => id.toString());
|
45
|
-
expect(result).toEqual(['0.0.3', '0.0.4', '0.0.5']);
|
46
|
-
});
|
47
|
-
it('should do nothing if node account ids are already set', () => {
|
48
|
-
var _a;
|
49
|
-
const txn = new TopicCreateTransaction();
|
50
|
-
txn.setNodeAccountIds([new AccountId(4)]);
|
51
|
-
setDefaultNodeAccountIds(txn);
|
52
|
-
const result = (_a = txn.nodeAccountIds) === null || _a === void 0 ? void 0 : _a.map((id) => id.toString());
|
53
|
-
expect(result).toEqual(['0.0.4']);
|
54
|
-
});
|
55
|
-
});
|
56
|
-
describe(transactionToBase64String.name, () => {
|
57
|
-
it('should convert a transaction to a base64 encoded string', () => {
|
58
|
-
const txn = prepareTestTransaction(new TopicCreateTransaction());
|
59
|
-
const result = transactionToBase64String(txn);
|
60
|
-
const { expected } = useJsonFixture('transactionToBase64StringResult');
|
61
|
-
expect(result).toBe(expected);
|
62
|
-
});
|
63
|
-
});
|
64
|
-
describe(base64StringToTransaction.name, () => {
|
65
|
-
it('should create a transaction from a base64 string', () => {
|
66
|
-
const txn = prepareTestTransaction(new TopicCreateTransaction());
|
67
|
-
txn.setTransactionMemo('I should be restored');
|
68
|
-
const str = transactionToBase64String(txn);
|
69
|
-
const resultWithParam = base64StringToTransaction(str);
|
70
|
-
const resultWithoutParam = base64StringToTransaction(str);
|
71
|
-
expect(resultWithParam).toBeInstanceOf(TopicCreateTransaction);
|
72
|
-
expect(resultWithoutParam).toBeInstanceOf(TopicCreateTransaction);
|
73
|
-
expect(resultWithParam.transactionMemo).toBe('I should be restored');
|
74
|
-
});
|
75
|
-
});
|
76
|
-
describe(`Uint8Array helpers`, () => {
|
77
|
-
let uInt8Array;
|
78
|
-
describe(base64StringToUint8Array.name, () => {
|
79
|
-
it('should decode base64 string to Uint8Array', async () => {
|
80
|
-
const base64String = btoa('Hello World!');
|
81
|
-
uInt8Array = base64StringToUint8Array(base64String);
|
82
|
-
expect(uInt8Array).toBeInstanceOf(Uint8Array);
|
83
|
-
expect(Array.from(uInt8Array)).toEqual([
|
84
|
-
72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33,
|
85
|
-
]);
|
86
|
-
});
|
87
|
-
});
|
88
|
-
describe(Uint8ArrayToBase64String.name, () => {
|
89
|
-
it('should encode Uint8Array to base64 string', async () => {
|
90
|
-
const base64String = Uint8ArrayToBase64String(uInt8Array);
|
91
|
-
expect(typeof base64String).toBe('string');
|
92
|
-
expect(base64String).toBe('SGVsbG8gV29ybGQh');
|
93
|
-
expect(atob(base64String)).toBe('Hello World!');
|
94
|
-
});
|
95
|
-
});
|
96
|
-
});
|
97
|
-
describe(`Query helpers`, () => {
|
98
|
-
let base64Query;
|
99
|
-
describe(queryToBase64String.name, () => {
|
100
|
-
it('should encode Query to base64 string', async () => {
|
101
|
-
const query = new AccountInfoQuery().setAccountId(testUserAccountId);
|
102
|
-
base64Query = queryToBase64String(query);
|
103
|
-
expect(typeof base64Query).toBe('string');
|
104
|
-
expect(base64Query).toEqual('Sg0KAhAAEgcIABAAGLlg');
|
105
|
-
});
|
106
|
-
});
|
107
|
-
describe(base64StringToQuery.name, () => {
|
108
|
-
it('should decode base64 string to Query', async () => {
|
109
|
-
var _a;
|
110
|
-
const query = base64StringToQuery(base64Query);
|
111
|
-
expect(query).toBeInstanceOf(Query);
|
112
|
-
expect(query).toBeInstanceOf(AccountInfoQuery);
|
113
|
-
expect((_a = query.accountId) === null || _a === void 0 ? void 0 : _a.toString()).toBe(testUserAccountId.toString());
|
114
|
-
});
|
115
|
-
});
|
116
|
-
});
|
117
|
-
describe(EIPChainIdToLedgerId.name, () => {
|
118
|
-
it('should convert a EIP chain id to a LedgerId object', async () => {
|
119
|
-
const mainnetLedgerId = EIPChainIdToLedgerId(295);
|
120
|
-
const testnetLedgerId = EIPChainIdToLedgerId(296);
|
121
|
-
const previewnetLedgerId = EIPChainIdToLedgerId(297);
|
122
|
-
const localnodeLedgerId = EIPChainIdToLedgerId(298);
|
123
|
-
const localnodeLedgerIdWithRandomId = EIPChainIdToLedgerId(999);
|
124
|
-
expect(mainnetLedgerId).toBe(LedgerId.MAINNET);
|
125
|
-
expect(testnetLedgerId).toBe(LedgerId.TESTNET);
|
126
|
-
expect(previewnetLedgerId).toBe(LedgerId.PREVIEWNET);
|
127
|
-
expect(localnodeLedgerId).toBe(LedgerId.LOCAL_NODE);
|
128
|
-
expect(localnodeLedgerIdWithRandomId).toBe(LedgerId.LOCAL_NODE);
|
129
|
-
});
|
130
|
-
});
|
131
|
-
describe(ledgerIdToEIPChainId.name, () => {
|
132
|
-
it('should convert a LedgerId object to a EIP chain id', async () => {
|
133
|
-
const mainnetChainId = ledgerIdToEIPChainId(LedgerId.MAINNET);
|
134
|
-
const testnetChainId = ledgerIdToEIPChainId(LedgerId.TESTNET);
|
135
|
-
const previewnetChainId = ledgerIdToEIPChainId(LedgerId.PREVIEWNET);
|
136
|
-
const localnodeChainId = ledgerIdToEIPChainId(LedgerId.LOCAL_NODE);
|
137
|
-
expect(mainnetChainId).toBe(295);
|
138
|
-
expect(testnetChainId).toBe(296);
|
139
|
-
expect(previewnetChainId).toBe(297);
|
140
|
-
expect(localnodeChainId).toBe(298);
|
141
|
-
});
|
142
|
-
});
|
143
|
-
describe(networkNameToEIPChainId.name, () => {
|
144
|
-
it('should convert a network name to a EIP chain id', async () => {
|
145
|
-
const mainnetChainId = networkNameToEIPChainId('mainnet');
|
146
|
-
const testnetChainId = networkNameToEIPChainId('testnet');
|
147
|
-
const previewnetChainId = networkNameToEIPChainId('previewnet');
|
148
|
-
const localnodeChainId = networkNameToEIPChainId('devnet');
|
149
|
-
expect(mainnetChainId).toBe(295);
|
150
|
-
expect(testnetChainId).toBe(296);
|
151
|
-
expect(previewnetChainId).toBe(297);
|
152
|
-
expect(localnodeChainId).toBe(298);
|
153
|
-
});
|
154
|
-
});
|
155
|
-
describe(CAIPChainIdToLedgerId.name, () => {
|
156
|
-
it('should convert a CAIP chain id to a LedgerId object', async () => {
|
157
|
-
const mainnetLedgerId = CAIPChainIdToLedgerId(HederaChainId.Mainnet);
|
158
|
-
const testnetLedgerId = CAIPChainIdToLedgerId(HederaChainId.Testnet);
|
159
|
-
const previewnetLedgerId = CAIPChainIdToLedgerId(HederaChainId.Previewnet);
|
160
|
-
const localnodeLedgerId = CAIPChainIdToLedgerId(HederaChainId.Devnet);
|
161
|
-
expect(mainnetLedgerId).toBe(LedgerId.MAINNET);
|
162
|
-
expect(testnetLedgerId).toBe(LedgerId.TESTNET);
|
163
|
-
expect(previewnetLedgerId).toBe(LedgerId.PREVIEWNET);
|
164
|
-
expect(localnodeLedgerId).toBe(LedgerId.LOCAL_NODE);
|
165
|
-
});
|
166
|
-
});
|
167
|
-
describe(ledgerIdToCAIPChainId.name, () => {
|
168
|
-
it('should convert a LedgerId object to a CAIP chain id', async () => {
|
169
|
-
const mainnetChainId = ledgerIdToCAIPChainId(LedgerId.MAINNET);
|
170
|
-
const testnetChainId = ledgerIdToCAIPChainId(LedgerId.TESTNET);
|
171
|
-
const previewnetChainId = ledgerIdToCAIPChainId(LedgerId.PREVIEWNET);
|
172
|
-
const localnodeChainId = ledgerIdToCAIPChainId(LedgerId.LOCAL_NODE);
|
173
|
-
expect(mainnetChainId).toBe(HederaChainId.Mainnet);
|
174
|
-
expect(testnetChainId).toBe(HederaChainId.Testnet);
|
175
|
-
expect(previewnetChainId).toBe(HederaChainId.Previewnet);
|
176
|
-
expect(localnodeChainId).toBe(HederaChainId.Devnet);
|
177
|
-
});
|
178
|
-
});
|
179
|
-
describe(networkNameToCAIPChainId.name, () => {
|
180
|
-
it('should convert a network name to a CAIP chain id', async () => {
|
181
|
-
const mainnetChainId = networkNameToCAIPChainId('mainnet');
|
182
|
-
const testnetChainId = networkNameToCAIPChainId('testnet');
|
183
|
-
const previewnetChainId = networkNameToCAIPChainId('previewnet');
|
184
|
-
const localnodeChainId = networkNameToCAIPChainId('devnet');
|
185
|
-
expect(mainnetChainId).toBe(HederaChainId.Mainnet);
|
186
|
-
expect(testnetChainId).toBe(HederaChainId.Testnet);
|
187
|
-
expect(previewnetChainId).toBe(HederaChainId.Previewnet);
|
188
|
-
expect(localnodeChainId).toBe(HederaChainId.Devnet);
|
189
|
-
});
|
190
|
-
});
|
191
|
-
describe(networkNamespaces.name, () => {
|
192
|
-
it('should create a `ProposalTypes.RequiredNamespaces` object for a given ledgerId', async () => {
|
193
|
-
const methods = ['hedera_signMessage'];
|
194
|
-
const events = Object.values(HederaSessionEvent);
|
195
|
-
const testnetNamespaces = networkNamespaces(LedgerId.TESTNET, methods, events);
|
196
|
-
expect(testnetNamespaces.hedera).not.toBe(undefined);
|
197
|
-
expect(testnetNamespaces.hedera.methods).toBe(methods);
|
198
|
-
expect(testnetNamespaces.hedera.events).toBe(events);
|
199
|
-
expect(testnetNamespaces.hedera.chains).toEqual([HederaChainId.Testnet]);
|
200
|
-
});
|
201
|
-
});
|
@@ -1 +0,0 @@
|
|
1
|
-
export {};
|
@@ -1,43 +0,0 @@
|
|
1
|
-
/*
|
2
|
-
*
|
3
|
-
* Hedera Wallet Connect
|
4
|
-
*
|
5
|
-
* Copyright (C) 2023 Hedera Hashgraph, LLC
|
6
|
-
*
|
7
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
8
|
-
* you may not use this file except in compliance with the License.
|
9
|
-
* You may obtain a copy of the License at
|
10
|
-
*
|
11
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
12
|
-
*
|
13
|
-
* Unless required by applicable law or agreed to in writing, software
|
14
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
15
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
16
|
-
* See the License for the specific language governing permissions and
|
17
|
-
* limitations under the License.
|
18
|
-
*
|
19
|
-
*/
|
20
|
-
import { TopicCreateTransaction } from '@hashgraph/sdk';
|
21
|
-
import { HederaChainId, Wallet } from '../../../src';
|
22
|
-
import { prepareTestTransaction, projectId, requestId, requestTopic, testPrivateKeyECDSA, testUserAccountId, useJsonFixture, walletMetadata, } from '../../_helpers';
|
23
|
-
describe(Wallet.name, () => {
|
24
|
-
describe('executeTransaction', () => {
|
25
|
-
it('should execute signed transaction, returning the transaction response', async () => {
|
26
|
-
try {
|
27
|
-
const wallet = await Wallet.create(projectId, walletMetadata);
|
28
|
-
const hederaWallet = wallet.getHederaWallet(HederaChainId.Testnet, testUserAccountId.toString(), testPrivateKeyECDSA);
|
29
|
-
const signerCallMock = jest.spyOn(hederaWallet, 'call');
|
30
|
-
signerCallMock.mockImplementation(async () => { }); // Mocking the 'call' method to do nothing
|
31
|
-
const transaction = prepareTestTransaction(new TopicCreateTransaction(), {
|
32
|
-
freeze: true,
|
33
|
-
});
|
34
|
-
const signTransaction = await hederaWallet.signTransaction(transaction);
|
35
|
-
const respondSessionRequestSpy = jest.spyOn(wallet, 'respondSessionRequest');
|
36
|
-
await wallet.hedera_executeTransaction(requestId, requestTopic, signTransaction, hederaWallet);
|
37
|
-
const mockResponse = useJsonFixture('methods/executeTransactionSuccess');
|
38
|
-
expect(respondSessionRequestSpy).toHaveBeenCalledWith(mockResponse);
|
39
|
-
}
|
40
|
-
catch (err) { }
|
41
|
-
}, 15000);
|
42
|
-
});
|
43
|
-
});
|
@@ -1 +0,0 @@
|
|
1
|
-
export {};
|
@@ -1,40 +0,0 @@
|
|
1
|
-
/*
|
2
|
-
*
|
3
|
-
* Hedera Wallet Connect
|
4
|
-
*
|
5
|
-
* Copyright (C) 2023 Hedera Hashgraph, LLC
|
6
|
-
*
|
7
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
8
|
-
* you may not use this file except in compliance with the License.
|
9
|
-
* You may obtain a copy of the License at
|
10
|
-
*
|
11
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
12
|
-
*
|
13
|
-
* Unless required by applicable law or agreed to in writing, software
|
14
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
15
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
16
|
-
* See the License for the specific language governing permissions and
|
17
|
-
* limitations under the License.
|
18
|
-
*
|
19
|
-
*/
|
20
|
-
import { HederaChainId, Wallet } from '../../../src';
|
21
|
-
import { projectId, requestId, requestTopic, testPrivateKeyECDSA, testUserAccountId, useJsonFixture, walletMetadata, } from '../../_helpers';
|
22
|
-
describe(Wallet.name, () => {
|
23
|
-
describe('getNodeAddresses', () => {
|
24
|
-
it('should return array of nodes addresses', async () => {
|
25
|
-
const wallet = await Wallet.create(projectId, walletMetadata);
|
26
|
-
const hederaWallet = wallet.getHederaWallet(HederaChainId.Testnet, testUserAccountId.toString(), testPrivateKeyECDSA);
|
27
|
-
const respondSessionRequestSpy = jest.spyOn(wallet, 'respondSessionRequest');
|
28
|
-
try {
|
29
|
-
await wallet.hedera_getNodeAddresses(requestId, requestTopic, null, hederaWallet);
|
30
|
-
}
|
31
|
-
catch (err) { }
|
32
|
-
const mockResponse = useJsonFixture('methods/getNodeAddressesSuccess');
|
33
|
-
const callArguments = respondSessionRequestSpy.mock.calls[0][0];
|
34
|
-
const response = callArguments;
|
35
|
-
response.response.result.nodes.sort();
|
36
|
-
mockResponse.response.result.nodes.sort();
|
37
|
-
expect(response).toEqual(mockResponse);
|
38
|
-
}, 15000);
|
39
|
-
});
|
40
|
-
});
|
@@ -1 +0,0 @@
|
|
1
|
-
export {};
|
@@ -1,41 +0,0 @@
|
|
1
|
-
/*
|
2
|
-
*
|
3
|
-
* Hedera Wallet Connect
|
4
|
-
*
|
5
|
-
* Copyright (C) 2023 Hedera Hashgraph, LLC
|
6
|
-
*
|
7
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
8
|
-
* you may not use this file except in compliance with the License.
|
9
|
-
* You may obtain a copy of the License at
|
10
|
-
*
|
11
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
12
|
-
*
|
13
|
-
* Unless required by applicable law or agreed to in writing, software
|
14
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
15
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
16
|
-
* See the License for the specific language governing permissions and
|
17
|
-
* limitations under the License.
|
18
|
-
*
|
19
|
-
*/
|
20
|
-
import { AccountInfoQuery } from '@hashgraph/sdk';
|
21
|
-
import { HederaChainId, Wallet, base64StringToUint8Array, } from '../../../src';
|
22
|
-
import { projectId, requestId, requestTopic, testPrivateKeyECDSA, testUserAccountId, useJsonFixture, walletMetadata, } from '../../_helpers';
|
23
|
-
describe(Wallet.name, () => {
|
24
|
-
describe('signAndExecuteQuery', () => {
|
25
|
-
it('should sign and execute query, returning the query response', async () => {
|
26
|
-
const wallet = await Wallet.create(projectId, walletMetadata);
|
27
|
-
const hederaWallet = wallet.getHederaWallet(HederaChainId.Testnet, testUserAccountId.toString(), testPrivateKeyECDSA);
|
28
|
-
const query = new AccountInfoQuery().setAccountId(testUserAccountId);
|
29
|
-
const respondSessionRequestSpy = jest.spyOn(wallet, 'respondSessionRequest');
|
30
|
-
const signerCallMock = jest.spyOn(query, 'executeWithSigner');
|
31
|
-
const toBytes = () => base64StringToUint8Array(btoa('Hello World!'));
|
32
|
-
signerCallMock.mockImplementation(async () => ({ toBytes }));
|
33
|
-
try {
|
34
|
-
await wallet.hedera_signAndExecuteQuery(requestId, requestTopic, query, hederaWallet);
|
35
|
-
}
|
36
|
-
catch (err) { }
|
37
|
-
const mockResponse = useJsonFixture('methods/signAndExecuteQuerySuccess');
|
38
|
-
expect(respondSessionRequestSpy).toHaveBeenCalledWith(mockResponse);
|
39
|
-
}, 15000);
|
40
|
-
});
|
41
|
-
});
|
@@ -1 +0,0 @@
|
|
1
|
-
export {};
|
@@ -1,48 +0,0 @@
|
|
1
|
-
/*
|
2
|
-
*
|
3
|
-
* Hedera Wallet Connect
|
4
|
-
*
|
5
|
-
* Copyright (C) 2023 Hedera Hashgraph, LLC
|
6
|
-
*
|
7
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
8
|
-
* you may not use this file except in compliance with the License.
|
9
|
-
* You may obtain a copy of the License at
|
10
|
-
*
|
11
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
12
|
-
*
|
13
|
-
* Unless required by applicable law or agreed to in writing, software
|
14
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
15
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
16
|
-
* See the License for the specific language governing permissions and
|
17
|
-
* limitations under the License.
|
18
|
-
*
|
19
|
-
*/
|
20
|
-
import { TopicCreateTransaction } from '@hashgraph/sdk';
|
21
|
-
import { HederaChainId, Wallet } from '../../../src';
|
22
|
-
import { prepareTestTransaction, projectId, requestId, requestTopic, testPrivateKeyECDSA, testUserAccountId, useJsonFixture, walletMetadata, } from '../../_helpers';
|
23
|
-
describe(Wallet.name, () => {
|
24
|
-
describe('signAndExecuteTransaction', () => {
|
25
|
-
it('should sign and execute, returning the transaction response', async () => {
|
26
|
-
try {
|
27
|
-
const wallet = await Wallet.create(projectId, walletMetadata);
|
28
|
-
const hederaWallet = wallet.getHederaWallet(HederaChainId.Testnet, testUserAccountId.toString(), testPrivateKeyECDSA);
|
29
|
-
const signerCallMock = jest.spyOn(hederaWallet, 'call');
|
30
|
-
signerCallMock.mockImplementation(async () => {
|
31
|
-
return {
|
32
|
-
nodeId: '0.0.3',
|
33
|
-
transactionHash: 'uO6obRah/zbL1Wn1ZVd5unos7kbsI8G5bHifKGVWUGZPiCafQzr/hdlEJyUiKLw9',
|
34
|
-
transactionId: '0.0.12345@1691705630.325343432',
|
35
|
-
};
|
36
|
-
}); // Mocking the 'call' method to do nothing
|
37
|
-
const transaction = prepareTestTransaction(new TopicCreateTransaction(), {
|
38
|
-
freeze: true,
|
39
|
-
});
|
40
|
-
const respondSessionRequestSpy = jest.spyOn(wallet, 'respondSessionRequest');
|
41
|
-
await wallet.hedera_signAndExecuteTransaction(requestId, requestTopic, transaction, hederaWallet);
|
42
|
-
const mockResponse = useJsonFixture('methods/signAndExecuteTransactionSuccess');
|
43
|
-
expect(respondSessionRequestSpy).toHaveBeenCalledWith(mockResponse);
|
44
|
-
}
|
45
|
-
catch (err) { }
|
46
|
-
}, 15000);
|
47
|
-
});
|
48
|
-
});
|
@@ -1 +0,0 @@
|
|
1
|
-
export {};
|
@@ -1,60 +0,0 @@
|
|
1
|
-
/*
|
2
|
-
*
|
3
|
-
* Hedera Wallet Connect
|
4
|
-
*
|
5
|
-
* Copyright (C) 2023 Hedera Hashgraph, LLC
|
6
|
-
*
|
7
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
8
|
-
* you may not use this file except in compliance with the License.
|
9
|
-
* You may obtain a copy of the License at
|
10
|
-
*
|
11
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
12
|
-
*
|
13
|
-
* Unless required by applicable law or agreed to in writing, software
|
14
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
15
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
16
|
-
* See the License for the specific language governing permissions and
|
17
|
-
* limitations under the License.
|
18
|
-
*
|
19
|
-
*/
|
20
|
-
import { HederaChainId, Wallet } from '../../../src';
|
21
|
-
import { testPrivateKeyECDSA, testPrivateKeyED25519, testUserAccountId, walletMetadata, projectId, } from '../../_helpers';
|
22
|
-
describe(Wallet.name, () => {
|
23
|
-
describe('signMessage', () => {
|
24
|
-
// [private key type, private key, expected value]
|
25
|
-
const testCases = [
|
26
|
-
[
|
27
|
-
'ECDSA',
|
28
|
-
testPrivateKeyECDSA,
|
29
|
-
'CmUKIQJ4J53yGuPNMGEGJ7HkI+u3QFxUuAOa9VLEtFj7Y6qNMzJAp3vxT7kRPE9HFFm/bbArGYDQ+psNWZC70rdW2bE1L86REC5xavtsalXfGaZ7FsdkWwPg4GBUKuzmr1eFTcYdNg==',
|
30
|
-
],
|
31
|
-
[
|
32
|
-
'ED25519',
|
33
|
-
testPrivateKeyED25519,
|
34
|
-
'CmQKIKLvE3YbZEplGhpKxmbq+6xBnJcoL4r1wz9Y1zLnPlpVGkBtfDTfBZGf/MUbovYyLUjORErDGhDYbzPFoAbkMwRrpw2ouDRmn6Dd6A06k6yM/FhZ/VjdHVhQUd+fxv1cZqUM',
|
35
|
-
],
|
36
|
-
];
|
37
|
-
test.each(testCases)('should decode message bytes and sign with: %p', async (_, privateKey, expected) => {
|
38
|
-
const wallet = await Wallet.create(projectId, walletMetadata);
|
39
|
-
const id = 1;
|
40
|
-
const topic = 'test-topic';
|
41
|
-
const hederaWallet = wallet.getHederaWallet(HederaChainId.Testnet, testUserAccountId.toString(), privateKey);
|
42
|
-
const respondSessionRequestSpy = jest.spyOn(wallet, 'respondSessionRequest');
|
43
|
-
try {
|
44
|
-
await wallet.hedera_signMessage(id, topic, 'Hello Future', hederaWallet);
|
45
|
-
}
|
46
|
-
catch (err) { }
|
47
|
-
const mockResponse = {
|
48
|
-
topic,
|
49
|
-
response: {
|
50
|
-
jsonrpc: '2.0',
|
51
|
-
id,
|
52
|
-
result: {
|
53
|
-
signatureMap: expected,
|
54
|
-
},
|
55
|
-
},
|
56
|
-
};
|
57
|
-
expect(respondSessionRequestSpy).toHaveBeenCalledWith(mockResponse);
|
58
|
-
});
|
59
|
-
});
|
60
|
-
});
|
@@ -1 +0,0 @@
|
|
1
|
-
export {};
|
@@ -1,47 +0,0 @@
|
|
1
|
-
/*
|
2
|
-
*
|
3
|
-
* Hedera Wallet Connect
|
4
|
-
*
|
5
|
-
* Copyright (C) 2023 Hedera Hashgraph, LLC
|
6
|
-
*
|
7
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
8
|
-
* you may not use this file except in compliance with the License.
|
9
|
-
* You may obtain a copy of the License at
|
10
|
-
*
|
11
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
12
|
-
*
|
13
|
-
* Unless required by applicable law or agreed to in writing, software
|
14
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
15
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
16
|
-
* See the License for the specific language governing permissions and
|
17
|
-
* limitations under the License.
|
18
|
-
*
|
19
|
-
*/
|
20
|
-
import { TransferTransaction, Hbar, AccountId } from '@hashgraph/sdk';
|
21
|
-
import { HederaChainId, Wallet, transactionToTransactionBody, } from '../../../src';
|
22
|
-
import { projectId, requestId, requestTopic, testPrivateKeyECDSA, testUserAccountId, useJsonFixture, walletMetadata, } from '../../_helpers';
|
23
|
-
describe(Wallet.name, () => {
|
24
|
-
describe('signTransaction', () => {
|
25
|
-
it('should sign a transaction and return without executing', async () => {
|
26
|
-
try {
|
27
|
-
const wallet = await Wallet.create(projectId, walletMetadata);
|
28
|
-
const hederaWallet = wallet.getHederaWallet(HederaChainId.Testnet, testUserAccountId.toString(), testPrivateKeyECDSA);
|
29
|
-
const transaction = new TransferTransaction()
|
30
|
-
.setMaxTransactionFee(new Hbar(1))
|
31
|
-
.addHbarTransfer('0.0.123', new Hbar(10))
|
32
|
-
.addHbarTransfer('0.0.321', new Hbar(-10));
|
33
|
-
const transactionBody = transactionToTransactionBody(transaction, AccountId.fromString('0.0.3'));
|
34
|
-
if (!transactionBody)
|
35
|
-
throw new Error('Failed to create transaction body');
|
36
|
-
const respondSessionRequestSpy = jest.spyOn(wallet, 'respondSessionRequest');
|
37
|
-
const response = await wallet.hedera_signTransaction(requestId, requestTopic, transactionBody, hederaWallet);
|
38
|
-
console.log(response);
|
39
|
-
const mockResponse = useJsonFixture('methods/signTransactionSuccess');
|
40
|
-
mockResponse.response.result;
|
41
|
-
respondSessionRequestSpy;
|
42
|
-
expect(respondSessionRequestSpy).toHaveBeenCalledWith(mockResponse);
|
43
|
-
}
|
44
|
-
catch (err) { }
|
45
|
-
}, 15000);
|
46
|
-
});
|
47
|
-
});
|
@@ -1 +0,0 @@
|
|
1
|
-
export {};
|