@autonomys/auto-utils 0.1.5 → 0.1.6-devnet-support
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 +56 -56
- package/dist/constants/network.d.ts.map +1 -1
- package/dist/constants/network.js +25 -0
- package/dist/types/event.d.ts +2 -0
- package/dist/types/event.d.ts.map +1 -1
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +1 -0
- package/dist/types/transaction.d.ts +14 -0
- package/dist/types/transaction.d.ts.map +1 -0
- package/dist/types/transaction.js +3 -0
- package/dist/utils/detectTxSuccess.d.ts +3 -0
- package/dist/utils/detectTxSuccess.d.ts.map +1 -0
- package/dist/utils/detectTxSuccess.js +13 -0
- package/dist/utils/events.d.ts +11 -0
- package/dist/utils/events.d.ts.map +1 -0
- package/dist/utils/events.js +19 -0
- package/dist/utils/index.d.ts +3 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +3 -0
- package/dist/utils/signAndSendTx.d.ts +3 -0
- package/dist/utils/signAndSendTx.d.ts.map +1 -0
- package/dist/utils/signAndSendTx.js +52 -0
- package/dist/utils/validateEvents.d.ts +3 -0
- package/dist/utils/validateEvents.d.ts.map +1 -0
- package/dist/utils/validateEvents.js +24 -0
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -1,56 +1,56 @@
|
|
|
1
|
-
# Autonomys Auto SDK Utility
|
|
2
|
-
|
|
3
|
-
## Overview
|
|
4
|
-
|
|
5
|
-
The Autonomys Auto SDK Utility provides functionalities for wallet setup, network management, data storage, cryptographic operations, and API activation.
|
|
6
|
-
|
|
7
|
-
## Wallet Management
|
|
8
|
-
|
|
9
|
-
- `setupWallet(params: MnemonicOrURI): Promise<KeyringPair>`: Initializes a wallet using a mnemonic or URI.
|
|
10
|
-
- `activateWallet(params: ActivateWalletParams): Promise<WalletActivated>`: Activates a wallet and returns API and accounts.
|
|
11
|
-
- `mockWallets(network: NetworkParams | DomainParams): Promise<WalletActivated[]>`: Creates mock wallets for testing.
|
|
12
|
-
- `getMockWallet(name: string, wallets: WalletActivated[]): WalletActivated`: Retrieves a mock wallet by name.
|
|
13
|
-
|
|
14
|
-
## Network Management
|
|
15
|
-
|
|
16
|
-
- `getNetworkDetails(input?: NetworkParams): Network`: Gets network details.
|
|
17
|
-
- `getNetworkRpcUrls(input?: NetworkParams): string[]`: Gets network RPC URLs.
|
|
18
|
-
- `getNetworkDomainDetails(params: DomainParams): Domain`: Gets domain details.
|
|
19
|
-
- `getNetworkDomainRpcUrls(params: DomainParams): string[]`: Gets domain RPC URLs.
|
|
20
|
-
|
|
21
|
-
## Data Storage
|
|
22
|
-
|
|
23
|
-
- `save(key: string, value: any)`: Saves data to local storage or file system.
|
|
24
|
-
- `read(key: string): any`: Reads data from local storage or file system.
|
|
25
|
-
|
|
26
|
-
## Cryptographic Functions
|
|
27
|
-
|
|
28
|
-
- `blake2b_256(data: Uint8Array): string`: Hashes data with BLAKE2b-256.
|
|
29
|
-
- `stringToUint8Array(text: string): Uint8Array`: Converts a string to a Uint8Array.
|
|
30
|
-
- `concatenateUint8Arrays(array1: Uint8Array, array2: Uint8Array): Uint8Array`: Concatenates two Uint8Arrays.
|
|
31
|
-
|
|
32
|
-
## API Activation
|
|
33
|
-
|
|
34
|
-
- `activate(input?: NetworkParams): Promise<ApiPromise>`: Activates the API for a network.
|
|
35
|
-
- `activateDomain(params: DomainParams): Promise<ApiPromise>`: Activates the API for a domain.
|
|
36
|
-
- `disconnect()`: Disconnects the API.
|
|
37
|
-
- `disconnectDomain()`: Disconnects the domain API.
|
|
38
|
-
|
|
39
|
-
## Constants
|
|
40
|
-
|
|
41
|
-
- `networks`: Array of network configurations.
|
|
42
|
-
- `defaultNetwork`: Default network configuration.
|
|
43
|
-
- `mockURIs`: Array of mock URIs.
|
|
44
|
-
|
|
45
|
-
## Types
|
|
46
|
-
|
|
47
|
-
- `Network`, `Domain`, `Explorer`, `NetworkParams`, `DomainParams`
|
|
48
|
-
- `Mnemonic`, `URI`, `AppName`, `MnemonicOrURI`
|
|
49
|
-
|
|
50
|
-
For more details, refer to the source files in the `src` directory.
|
|
51
|
-
|
|
52
|
-
## Import Example
|
|
53
|
-
|
|
54
|
-
```typescript
|
|
55
|
-
import { activateWallet } from '@autonomys/auto-utils'
|
|
56
|
-
```
|
|
1
|
+
# Autonomys Auto SDK Utility
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
The Autonomys Auto SDK Utility provides functionalities for wallet setup, network management, data storage, cryptographic operations, and API activation.
|
|
6
|
+
|
|
7
|
+
## Wallet Management
|
|
8
|
+
|
|
9
|
+
- `setupWallet(params: MnemonicOrURI): Promise<KeyringPair>`: Initializes a wallet using a mnemonic or URI.
|
|
10
|
+
- `activateWallet(params: ActivateWalletParams): Promise<WalletActivated>`: Activates a wallet and returns API and accounts.
|
|
11
|
+
- `mockWallets(network: NetworkParams | DomainParams): Promise<WalletActivated[]>`: Creates mock wallets for testing.
|
|
12
|
+
- `getMockWallet(name: string, wallets: WalletActivated[]): WalletActivated`: Retrieves a mock wallet by name.
|
|
13
|
+
|
|
14
|
+
## Network Management
|
|
15
|
+
|
|
16
|
+
- `getNetworkDetails(input?: NetworkParams): Network`: Gets network details.
|
|
17
|
+
- `getNetworkRpcUrls(input?: NetworkParams): string[]`: Gets network RPC URLs.
|
|
18
|
+
- `getNetworkDomainDetails(params: DomainParams): Domain`: Gets domain details.
|
|
19
|
+
- `getNetworkDomainRpcUrls(params: DomainParams): string[]`: Gets domain RPC URLs.
|
|
20
|
+
|
|
21
|
+
## Data Storage
|
|
22
|
+
|
|
23
|
+
- `save(key: string, value: any)`: Saves data to local storage or file system.
|
|
24
|
+
- `read(key: string): any`: Reads data from local storage or file system.
|
|
25
|
+
|
|
26
|
+
## Cryptographic Functions
|
|
27
|
+
|
|
28
|
+
- `blake2b_256(data: Uint8Array): string`: Hashes data with BLAKE2b-256.
|
|
29
|
+
- `stringToUint8Array(text: string): Uint8Array`: Converts a string to a Uint8Array.
|
|
30
|
+
- `concatenateUint8Arrays(array1: Uint8Array, array2: Uint8Array): Uint8Array`: Concatenates two Uint8Arrays.
|
|
31
|
+
|
|
32
|
+
## API Activation
|
|
33
|
+
|
|
34
|
+
- `activate(input?: NetworkParams): Promise<ApiPromise>`: Activates the API for a network.
|
|
35
|
+
- `activateDomain(params: DomainParams): Promise<ApiPromise>`: Activates the API for a domain.
|
|
36
|
+
- `disconnect()`: Disconnects the API.
|
|
37
|
+
- `disconnectDomain()`: Disconnects the domain API.
|
|
38
|
+
|
|
39
|
+
## Constants
|
|
40
|
+
|
|
41
|
+
- `networks`: Array of network configurations.
|
|
42
|
+
- `defaultNetwork`: Default network configuration.
|
|
43
|
+
- `mockURIs`: Array of mock URIs.
|
|
44
|
+
|
|
45
|
+
## Types
|
|
46
|
+
|
|
47
|
+
- `Network`, `Domain`, `Explorer`, `NetworkParams`, `DomainParams`
|
|
48
|
+
- `Mnemonic`, `URI`, `AppName`, `MnemonicOrURI`
|
|
49
|
+
|
|
50
|
+
For more details, refer to the source files in the `src` directory.
|
|
51
|
+
|
|
52
|
+
## Import Example
|
|
53
|
+
|
|
54
|
+
```typescript
|
|
55
|
+
import { activateWallet } from '@autonomys/auto-utils'
|
|
56
|
+
```
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"network.d.ts","sourceRoot":"","sources":["../../src/constants/network.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAE/C,eAAO,MAAM,QAAQ,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"network.d.ts","sourceRoot":"","sources":["../../src/constants/network.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAE/C,eAAO,MAAM,QAAQ,EAAE,OAAO,EAkF7B,CAAA;AAED,eAAO,MAAM,cAAc,SAAc,CAAA"}
|
|
@@ -34,6 +34,31 @@ exports.networks = [
|
|
|
34
34
|
],
|
|
35
35
|
isTestnet: true,
|
|
36
36
|
},
|
|
37
|
+
{
|
|
38
|
+
id: 'autonomys-devnet',
|
|
39
|
+
name: 'Autonomys - Devnet',
|
|
40
|
+
rpcUrls: ['ws://rpc.devnet.subspace.network/ws'],
|
|
41
|
+
explorer: [
|
|
42
|
+
{
|
|
43
|
+
name: 'Astral',
|
|
44
|
+
url: 'https://explorer.subspace.network/devnet/consensus/',
|
|
45
|
+
},
|
|
46
|
+
],
|
|
47
|
+
domains: [
|
|
48
|
+
{
|
|
49
|
+
id: 'auto-id', // Placeholder
|
|
50
|
+
name: 'Autonomys - Auto-ID',
|
|
51
|
+
rpcUrls: ['ws://autoid.devnet.subspace.network/ws'],
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
id: 'auto-evm', // Placeholder
|
|
55
|
+
name: 'Autonomys - Auto-EVM (Nova)',
|
|
56
|
+
rpcUrls: ['https:///nova.devnet.subspace.network/ws'],
|
|
57
|
+
},
|
|
58
|
+
],
|
|
59
|
+
isTestnet: true,
|
|
60
|
+
isLocalhost: false,
|
|
61
|
+
},
|
|
37
62
|
{
|
|
38
63
|
id: 'autonomys-localhost',
|
|
39
64
|
name: 'Autonomys - Localhost',
|
package/dist/types/event.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event.d.ts","sourceRoot":"","sources":["../../src/types/event.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AAE7D,YAAY,EAAE,WAAW,EAAE,CAAA"}
|
|
1
|
+
{"version":3,"file":"event.d.ts","sourceRoot":"","sources":["../../src/types/event.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AAE7D,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,MAAM,EAAE,CAAA;AAC5C,MAAM,MAAM,MAAM,GAAG,YAAY,GAAG,YAAY,EAAE,CAAA;AAElD,YAAY,EAAE,WAAW,EAAE,CAAA"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAA;AAExC,cAAc,SAAS,CAAA;AACvB,cAAc,aAAa,CAAA;AAC3B,cAAc,WAAW,CAAA;AACzB,cAAc,UAAU,CAAA;AAExB,YAAY,EAAE,EAAE,EAAE,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAA;AAExC,cAAc,SAAS,CAAA;AACvB,cAAc,aAAa,CAAA;AAC3B,cAAc,WAAW,CAAA;AACzB,cAAc,eAAe,CAAA;AAC7B,cAAc,UAAU,CAAA;AAExB,YAAY,EAAE,EAAE,EAAE,CAAA"}
|
package/dist/types/index.js
CHANGED
|
@@ -17,4 +17,5 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
17
17
|
__exportStar(require("./event"), exports);
|
|
18
18
|
__exportStar(require("./extrinsic"), exports);
|
|
19
19
|
__exportStar(require("./network"), exports);
|
|
20
|
+
__exportStar(require("./transaction"), exports);
|
|
20
21
|
__exportStar(require("./wallet"), exports);
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { SignerOptions } from '@polkadot/api/types';
|
|
2
|
+
import type { ActionEvents } from '../types/event';
|
|
3
|
+
export type EventsValidated = {
|
|
4
|
+
expected: ActionEvents[];
|
|
5
|
+
found: ActionEvents[];
|
|
6
|
+
};
|
|
7
|
+
export type TransactionSignedAndSend = {
|
|
8
|
+
success: boolean;
|
|
9
|
+
txHash: string | undefined;
|
|
10
|
+
blockHash: string | undefined;
|
|
11
|
+
events: EventsValidated;
|
|
12
|
+
};
|
|
13
|
+
export { SignerOptions };
|
|
14
|
+
//# sourceMappingURL=transaction.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../src/types/transaction.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAElD,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,EAAE,YAAY,EAAE,CAAA;IACxB,KAAK,EAAE,YAAY,EAAE,CAAA;CACtB,CAAA;AAED,MAAM,MAAM,wBAAwB,GAAG;IACrC,OAAO,EAAE,OAAO,CAAA;IAChB,MAAM,EAAE,MAAM,GAAG,SAAS,CAAA;IAC1B,SAAS,EAAE,MAAM,GAAG,SAAS,CAAA;IAC7B,MAAM,EAAE,eAAe,CAAA;CACxB,CAAA;AAED,OAAO,EAAE,aAAa,EAAE,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"detectTxSuccess.d.ts","sourceRoot":"","sources":["../../src/utils/detectTxSuccess.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAGjD,eAAO,MAAM,eAAe,WAAY,WAAW,EAAE,KAAG,OAMvD,CAAA"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// file: src/utils/detectTxSuccess.ts
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.detectTxSuccess = void 0;
|
|
5
|
+
const events_1 = require("./events");
|
|
6
|
+
const detectTxSuccess = (events) => {
|
|
7
|
+
events.forEach(({ event: { method, section } }) => {
|
|
8
|
+
if (events_1.expectSuccessfulTxEvent.indexOf(`${section}.${method}`) > -1)
|
|
9
|
+
return true;
|
|
10
|
+
});
|
|
11
|
+
return false;
|
|
12
|
+
};
|
|
13
|
+
exports.detectTxSuccess = detectTxSuccess;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export declare const enum Type {
|
|
2
|
+
system = "system"
|
|
3
|
+
}
|
|
4
|
+
export declare const eventName: (type: Type, event: string) => string;
|
|
5
|
+
export declare const eventsGroup: {
|
|
6
|
+
system: {
|
|
7
|
+
[key: string]: string;
|
|
8
|
+
};
|
|
9
|
+
};
|
|
10
|
+
export declare const expectSuccessfulTxEvent: string[];
|
|
11
|
+
//# sourceMappingURL=events.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/utils/events.ts"],"names":[],"mappings":"AAGA,0BAAkB,IAAI;IACpB,MAAM,WAAW;CAClB;AAGD,eAAO,MAAM,SAAS,SAAU,IAAI,SAAS,MAAM,WAAuB,CAAA;AAY1E,eAAO,MAAM,WAAW;;;;CAEvB,CAAA;AAGD,eAAO,MAAM,uBAAuB,UAAmB,CAAA"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// file: src/utils/events.ts
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.expectSuccessfulTxEvent = exports.eventsGroup = exports.eventName = void 0;
|
|
5
|
+
// Utility Function for Event Names
|
|
6
|
+
const eventName = (type, event) => `${type}.${event}`;
|
|
7
|
+
exports.eventName = eventName;
|
|
8
|
+
// System Events
|
|
9
|
+
const system = {
|
|
10
|
+
failure: (0, exports.eventName)("system" /* Type.system */, 'ExtrinsicFailed'),
|
|
11
|
+
newAccount: (0, exports.eventName)("system" /* Type.system */, 'NewAccount'),
|
|
12
|
+
success: (0, exports.eventName)("system" /* Type.system */, 'ExtrinsicSuccess'),
|
|
13
|
+
};
|
|
14
|
+
// Group of Events
|
|
15
|
+
exports.eventsGroup = {
|
|
16
|
+
system,
|
|
17
|
+
};
|
|
18
|
+
// Export a default success event
|
|
19
|
+
exports.expectSuccessfulTxEvent = [system.success];
|
package/dist/utils/index.d.ts
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
export * from './createType';
|
|
2
|
+
export * from './events';
|
|
2
3
|
export * from './format';
|
|
3
4
|
export * from './ready';
|
|
4
5
|
export * from './sign';
|
|
6
|
+
export * from './signAndSendTx';
|
|
7
|
+
export * from './validateEvents';
|
|
5
8
|
export * from './verify';
|
|
6
9
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,cAAc,UAAU,CAAA;AACxB,cAAc,SAAS,CAAA;AACvB,cAAc,QAAQ,CAAA;AACtB,cAAc,UAAU,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,cAAc,UAAU,CAAA;AACxB,cAAc,UAAU,CAAA;AACxB,cAAc,SAAS,CAAA;AACvB,cAAc,QAAQ,CAAA;AACtB,cAAc,iBAAiB,CAAA;AAC/B,cAAc,kBAAkB,CAAA;AAChC,cAAc,UAAU,CAAA"}
|
package/dist/utils/index.js
CHANGED
|
@@ -15,7 +15,10 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
__exportStar(require("./createType"), exports);
|
|
18
|
+
__exportStar(require("./events"), exports);
|
|
18
19
|
__exportStar(require("./format"), exports);
|
|
19
20
|
__exportStar(require("./ready"), exports);
|
|
20
21
|
__exportStar(require("./sign"), exports);
|
|
22
|
+
__exportStar(require("./signAndSendTx"), exports);
|
|
23
|
+
__exportStar(require("./validateEvents"), exports);
|
|
21
24
|
__exportStar(require("./verify"), exports);
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { AddressOrPair, Events, ISubmittableResult, SignerOptions, SubmittableExtrinsic, TransactionSignedAndSend } from '../types';
|
|
2
|
+
export declare const signAndSendTx: (sender: AddressOrPair, tx: SubmittableExtrinsic<'promise', ISubmittableResult>, options?: Partial<SignerOptions>, eventsExpected?: Events, log?: boolean) => Promise<TransactionSignedAndSend>;
|
|
3
|
+
//# sourceMappingURL=signAndSendTx.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"signAndSendTx.d.ts","sourceRoot":"","sources":["../../src/utils/signAndSendTx.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,aAAa,EACb,MAAM,EAEN,kBAAkB,EAClB,aAAa,EACb,oBAAoB,EACpB,wBAAwB,EACzB,MAAM,UAAU,CAAA;AAKjB,eAAO,MAAM,aAAa,WAChB,aAAa,MACjB,qBAAqB,SAAS,EAAE,kBAAkB,CAAC,YAC9C,QAAQ,aAAa,CAAC,mBACf,MAAM,QACjB,OAAO,KACX,QAAQ,wBAAwB,CAgClC,CAAA"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// file: src/utils/signAndSendTx.ts
|
|
3
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
4
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
5
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
6
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
7
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
8
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
9
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
10
|
+
});
|
|
11
|
+
};
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
exports.signAndSendTx = void 0;
|
|
14
|
+
const detectTxSuccess_1 = require("./detectTxSuccess");
|
|
15
|
+
const events_1 = require("./events");
|
|
16
|
+
const validateEvents_1 = require("./validateEvents");
|
|
17
|
+
const signAndSendTx = (sender_1, tx_1, ...args_1) => __awaiter(void 0, [sender_1, tx_1, ...args_1], void 0, function* (sender, tx, options = {}, eventsExpected = events_1.expectSuccessfulTxEvent, log = false) {
|
|
18
|
+
let success = false;
|
|
19
|
+
let txHashHex = undefined;
|
|
20
|
+
let blockHash = undefined;
|
|
21
|
+
let eventsValidated = { expected: [], found: [] };
|
|
22
|
+
yield new Promise((resolve, reject) => {
|
|
23
|
+
tx.signAndSend(sender, options, ({ events, status, txHash }) => {
|
|
24
|
+
if (status.isInBlock) {
|
|
25
|
+
txHashHex = txHash.toHex();
|
|
26
|
+
blockHash = status.asInBlock.toHex();
|
|
27
|
+
if (log)
|
|
28
|
+
console.log('Successful tx', txHashHex, 'in block', blockHash);
|
|
29
|
+
success = (0, detectTxSuccess_1.detectTxSuccess)(events);
|
|
30
|
+
if (eventsExpected.length > 0) {
|
|
31
|
+
const _events = (0, validateEvents_1.validateEvents)(events, eventsExpected, txHashHex, blockHash, log);
|
|
32
|
+
if (_events.expected.length === 0)
|
|
33
|
+
resolve();
|
|
34
|
+
else
|
|
35
|
+
reject(new Error('Events not found'));
|
|
36
|
+
}
|
|
37
|
+
else
|
|
38
|
+
resolve();
|
|
39
|
+
}
|
|
40
|
+
else if (status.isRetracted ||
|
|
41
|
+
status.isFinalityTimeout ||
|
|
42
|
+
status.isDropped ||
|
|
43
|
+
status.isInvalid) {
|
|
44
|
+
if (log)
|
|
45
|
+
console.error('Transaction failed');
|
|
46
|
+
reject(new Error('Transaction failed'));
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
});
|
|
50
|
+
return { success, txHash: txHashHex, blockHash, events: eventsValidated };
|
|
51
|
+
});
|
|
52
|
+
exports.signAndSendTx = signAndSendTx;
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { EventRecord, Events, EventsValidated } from '../types';
|
|
2
|
+
export declare const validateEvents: (events: EventRecord[], eventsExpected: Events | undefined, tx: string, block: string, log?: boolean) => EventsValidated;
|
|
3
|
+
//# sourceMappingURL=validateEvents.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validateEvents.d.ts","sourceRoot":"","sources":["../../src/utils/validateEvents.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAGpE,eAAO,MAAM,cAAc,WACjB,WAAW,EAAE,0CAEjB,MAAM,SACH,MAAM,QACR,OAAO,KACX,eAmBF,CAAA"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// file: src/utils/validateEvents.ts
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.validateEvents = void 0;
|
|
5
|
+
const events_1 = require("./events");
|
|
6
|
+
const validateEvents = (events, eventsExpected = events_1.expectSuccessfulTxEvent, tx, block, log = false) => {
|
|
7
|
+
const _eventsExpected = typeof eventsExpected === 'string'
|
|
8
|
+
? [eventsExpected]
|
|
9
|
+
: eventsExpected.map((e) => (typeof e === 'string' ? [e] : e)).flat();
|
|
10
|
+
const found = [];
|
|
11
|
+
events.forEach(({ event: { data, method, section } }) => {
|
|
12
|
+
const index = _eventsExpected.indexOf(`${section}.${method}`);
|
|
13
|
+
if (index > -1) {
|
|
14
|
+
_eventsExpected.splice(index, 1);
|
|
15
|
+
found.push(`${section}.${method}`);
|
|
16
|
+
}
|
|
17
|
+
else if (log)
|
|
18
|
+
console.log('Event not expected', `${section}.${method}`, 'tx', tx, 'block', block);
|
|
19
|
+
});
|
|
20
|
+
if (_eventsExpected.length > 0)
|
|
21
|
+
console.log('Events not found', _eventsExpected, 'tx', tx, 'block', block);
|
|
22
|
+
return { expected: _eventsExpected, found };
|
|
23
|
+
};
|
|
24
|
+
exports.validateEvents = validateEvents;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@autonomys/auto-utils",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.6-devnet-support",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"build": "tsc",
|
|
@@ -36,5 +36,5 @@
|
|
|
36
36
|
"browser": {
|
|
37
37
|
"fs": false
|
|
38
38
|
},
|
|
39
|
-
"gitHead": "
|
|
39
|
+
"gitHead": "ff53a35cb89e0979f528e0acb055f0b0ba516bcd"
|
|
40
40
|
}
|