@feelyourprotocol/util 8141.0.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/LICENSE +373 -0
- package/README.md +297 -0
- package/dist/cjs/account.d.ts +165 -0
- package/dist/cjs/account.d.ts.map +1 -0
- package/dist/cjs/account.js +530 -0
- package/dist/cjs/account.js.map +1 -0
- package/dist/cjs/address.d.ts +67 -0
- package/dist/cjs/address.d.ts.map +1 -0
- package/dist/cjs/address.js +136 -0
- package/dist/cjs/address.js.map +1 -0
- package/dist/cjs/authorization.d.ts +41 -0
- package/dist/cjs/authorization.d.ts.map +1 -0
- package/dist/cjs/authorization.js +135 -0
- package/dist/cjs/authorization.js.map +1 -0
- package/dist/cjs/bal.d.ts +129 -0
- package/dist/cjs/bal.d.ts.map +1 -0
- package/dist/cjs/bal.js +529 -0
- package/dist/cjs/bal.js.map +1 -0
- package/dist/cjs/binaryTree.d.ts +148 -0
- package/dist/cjs/binaryTree.d.ts.map +1 -0
- package/dist/cjs/binaryTree.js +240 -0
- package/dist/cjs/binaryTree.js.map +1 -0
- package/dist/cjs/blobs.d.ts +76 -0
- package/dist/cjs/blobs.d.ts.map +1 -0
- package/dist/cjs/blobs.js +175 -0
- package/dist/cjs/blobs.js.map +1 -0
- package/dist/cjs/bytes.d.ts +291 -0
- package/dist/cjs/bytes.d.ts.map +1 -0
- package/dist/cjs/bytes.js +606 -0
- package/dist/cjs/bytes.js.map +1 -0
- package/dist/cjs/constants.d.ts +91 -0
- package/dist/cjs/constants.d.ts.map +1 -0
- package/dist/cjs/constants.js +97 -0
- package/dist/cjs/constants.js.map +1 -0
- package/dist/cjs/db.d.ts +65 -0
- package/dist/cjs/db.d.ts.map +1 -0
- package/dist/cjs/db.js +14 -0
- package/dist/cjs/db.js.map +1 -0
- package/dist/cjs/env.d.ts +9 -0
- package/dist/cjs/env.d.ts.map +1 -0
- package/dist/cjs/env.js +13 -0
- package/dist/cjs/env.js.map +1 -0
- package/dist/cjs/errors.d.ts +3 -0
- package/dist/cjs/errors.d.ts.map +1 -0
- package/dist/cjs/errors.js +19 -0
- package/dist/cjs/errors.js.map +1 -0
- package/dist/cjs/helpers.d.ts +21 -0
- package/dist/cjs/helpers.d.ts.map +1 -0
- package/dist/cjs/helpers.js +50 -0
- package/dist/cjs/helpers.js.map +1 -0
- package/dist/cjs/index.d.ts +67 -0
- package/dist/cjs/index.d.ts.map +1 -0
- package/dist/cjs/index.js +93 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/internal.d.ts +72 -0
- package/dist/cjs/internal.d.ts.map +1 -0
- package/dist/cjs/internal.js +182 -0
- package/dist/cjs/internal.js.map +1 -0
- package/dist/cjs/kzg.d.ts +14 -0
- package/dist/cjs/kzg.d.ts.map +1 -0
- package/dist/cjs/kzg.js +3 -0
- package/dist/cjs/kzg.js.map +1 -0
- package/dist/cjs/lock.d.ts +15 -0
- package/dist/cjs/lock.d.ts.map +1 -0
- package/dist/cjs/lock.js +45 -0
- package/dist/cjs/lock.js.map +1 -0
- package/dist/cjs/mapDB.d.ts +17 -0
- package/dist/cjs/mapDB.d.ts.map +1 -0
- package/dist/cjs/mapDB.js +46 -0
- package/dist/cjs/mapDB.js.map +1 -0
- package/dist/cjs/package.json +3 -0
- package/dist/cjs/provider.d.ts +46 -0
- package/dist/cjs/provider.d.ts.map +1 -0
- package/dist/cjs/provider.js +84 -0
- package/dist/cjs/provider.js.map +1 -0
- package/dist/cjs/request.d.ts +20 -0
- package/dist/cjs/request.d.ts.map +1 -0
- package/dist/cjs/request.js +35 -0
- package/dist/cjs/request.js.map +1 -0
- package/dist/cjs/signature.d.ts +47 -0
- package/dist/cjs/signature.d.ts.map +1 -0
- package/dist/cjs/signature.js +147 -0
- package/dist/cjs/signature.js.map +1 -0
- package/dist/cjs/tasks.d.ts +32 -0
- package/dist/cjs/tasks.d.ts.map +1 -0
- package/dist/cjs/tasks.js +51 -0
- package/dist/cjs/tasks.js.map +1 -0
- package/dist/cjs/types.d.ts +64 -0
- package/dist/cjs/types.d.ts.map +1 -0
- package/dist/cjs/types.js +78 -0
- package/dist/cjs/types.js.map +1 -0
- package/dist/cjs/units.d.ts +22 -0
- package/dist/cjs/units.d.ts.map +1 -0
- package/dist/cjs/units.js +51 -0
- package/dist/cjs/units.js.map +1 -0
- package/dist/cjs/withdrawal.d.ts +72 -0
- package/dist/cjs/withdrawal.d.ts.map +1 -0
- package/dist/cjs/withdrawal.js +93 -0
- package/dist/cjs/withdrawal.js.map +1 -0
- package/dist/esm/account.d.ts +165 -0
- package/dist/esm/account.d.ts.map +1 -0
- package/dist/esm/account.js +505 -0
- package/dist/esm/account.js.map +1 -0
- package/dist/esm/address.d.ts +67 -0
- package/dist/esm/address.d.ts.map +1 -0
- package/dist/esm/address.js +125 -0
- package/dist/esm/address.js.map +1 -0
- package/dist/esm/authorization.d.ts +41 -0
- package/dist/esm/authorization.d.ts.map +1 -0
- package/dist/esm/authorization.js +126 -0
- package/dist/esm/authorization.js.map +1 -0
- package/dist/esm/bal.d.ts +129 -0
- package/dist/esm/bal.d.ts.map +1 -0
- package/dist/esm/bal.js +522 -0
- package/dist/esm/bal.js.map +1 -0
- package/dist/esm/binaryTree.d.ts +148 -0
- package/dist/esm/binaryTree.d.ts.map +1 -0
- package/dist/esm/binaryTree.js +226 -0
- package/dist/esm/binaryTree.js.map +1 -0
- package/dist/esm/blobs.d.ts +76 -0
- package/dist/esm/blobs.d.ts.map +1 -0
- package/dist/esm/blobs.js +163 -0
- package/dist/esm/blobs.js.map +1 -0
- package/dist/esm/bytes.d.ts +291 -0
- package/dist/esm/bytes.d.ts.map +1 -0
- package/dist/esm/bytes.js +562 -0
- package/dist/esm/bytes.js.map +1 -0
- package/dist/esm/constants.d.ts +91 -0
- package/dist/esm/constants.d.ts.map +1 -0
- package/dist/esm/constants.js +94 -0
- package/dist/esm/constants.js.map +1 -0
- package/dist/esm/db.d.ts +65 -0
- package/dist/esm/db.d.ts.map +1 -0
- package/dist/esm/db.js +11 -0
- package/dist/esm/db.js.map +1 -0
- package/dist/esm/env.d.ts +9 -0
- package/dist/esm/env.d.ts.map +1 -0
- package/dist/esm/env.js +9 -0
- package/dist/esm/env.js.map +1 -0
- package/dist/esm/errors.d.ts +3 -0
- package/dist/esm/errors.d.ts.map +1 -0
- package/dist/esm/errors.js +14 -0
- package/dist/esm/errors.js.map +1 -0
- package/dist/esm/helpers.d.ts +21 -0
- package/dist/esm/helpers.d.ts.map +1 -0
- package/dist/esm/helpers.js +43 -0
- package/dist/esm/helpers.js.map +1 -0
- package/dist/esm/index.d.ts +67 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +67 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/internal.d.ts +72 -0
- package/dist/esm/internal.d.ts.map +1 -0
- package/dist/esm/internal.js +170 -0
- package/dist/esm/internal.js.map +1 -0
- package/dist/esm/kzg.d.ts +14 -0
- package/dist/esm/kzg.d.ts.map +1 -0
- package/dist/esm/kzg.js +2 -0
- package/dist/esm/kzg.js.map +1 -0
- package/dist/esm/lock.d.ts +15 -0
- package/dist/esm/lock.d.ts.map +1 -0
- package/dist/esm/lock.js +41 -0
- package/dist/esm/lock.js.map +1 -0
- package/dist/esm/mapDB.d.ts +17 -0
- package/dist/esm/mapDB.d.ts.map +1 -0
- package/dist/esm/mapDB.js +42 -0
- package/dist/esm/mapDB.js.map +1 -0
- package/dist/esm/package.json +3 -0
- package/dist/esm/provider.d.ts +46 -0
- package/dist/esm/provider.d.ts.map +1 -0
- package/dist/esm/provider.js +79 -0
- package/dist/esm/provider.js.map +1 -0
- package/dist/esm/request.d.ts +20 -0
- package/dist/esm/request.d.ts.map +1 -0
- package/dist/esm/request.js +30 -0
- package/dist/esm/request.js.map +1 -0
- package/dist/esm/signature.d.ts +47 -0
- package/dist/esm/signature.d.ts.map +1 -0
- package/dist/esm/signature.js +137 -0
- package/dist/esm/signature.js.map +1 -0
- package/dist/esm/tasks.d.ts +32 -0
- package/dist/esm/tasks.d.ts.map +1 -0
- package/dist/esm/tasks.js +47 -0
- package/dist/esm/tasks.js.map +1 -0
- package/dist/esm/types.d.ts +64 -0
- package/dist/esm/types.d.ts.map +1 -0
- package/dist/esm/types.js +71 -0
- package/dist/esm/types.js.map +1 -0
- package/dist/esm/units.d.ts +22 -0
- package/dist/esm/units.d.ts.map +1 -0
- package/dist/esm/units.js +46 -0
- package/dist/esm/units.js.map +1 -0
- package/dist/esm/withdrawal.d.ts +72 -0
- package/dist/esm/withdrawal.d.ts.map +1 -0
- package/dist/esm/withdrawal.js +86 -0
- package/dist/esm/withdrawal.js.map +1 -0
- package/dist/tsconfig.prod.cjs.tsbuildinfo +1 -0
- package/dist/tsconfig.prod.esm.tsbuildinfo +1 -0
- package/package.json +116 -0
- package/src/account.ts +630 -0
- package/src/address.ts +158 -0
- package/src/authorization.ts +180 -0
- package/src/bal.ts +761 -0
- package/src/binaryTree.ts +353 -0
- package/src/blobs.ts +209 -0
- package/src/bytes.ts +659 -0
- package/src/constants.ts +125 -0
- package/src/db.ts +86 -0
- package/src/env.ts +9 -0
- package/src/errors.ts +28 -0
- package/src/helpers.ts +46 -0
- package/src/index.ts +88 -0
- package/src/internal.ts +212 -0
- package/src/kzg.ts +24 -0
- package/src/lock.ts +42 -0
- package/src/mapDB.ts +57 -0
- package/src/provider.ts +109 -0
- package/src/request.ts +48 -0
- package/src/signature.ts +202 -0
- package/src/tasks.ts +59 -0
- package/src/types.ts +177 -0
- package/src/units.ts +56 -0
- package/src/withdrawal.ts +133 -0
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Withdrawal = void 0;
|
|
4
|
+
exports.withdrawalToBytesArray = withdrawalToBytesArray;
|
|
5
|
+
exports.createWithdrawal = createWithdrawal;
|
|
6
|
+
exports.createWithdrawalFromBytesArray = createWithdrawalFromBytesArray;
|
|
7
|
+
const address_ts_1 = require("./address.js");
|
|
8
|
+
const bytes_ts_1 = require("./bytes.js");
|
|
9
|
+
const constants_ts_1 = require("./constants.js");
|
|
10
|
+
const types_ts_1 = require("./types.js");
|
|
11
|
+
/**
|
|
12
|
+
* Convert a withdrawal to a byte array
|
|
13
|
+
* @param withdrawal the withdrawal to convert
|
|
14
|
+
* @returns byte array of the withdrawal
|
|
15
|
+
*/
|
|
16
|
+
function withdrawalToBytesArray(withdrawal) {
|
|
17
|
+
const { index, validatorIndex, address, amount } = withdrawal;
|
|
18
|
+
const indexBytes = (0, types_ts_1.toType)(index, types_ts_1.TypeOutput.BigInt) === constants_ts_1.BIGINT_0
|
|
19
|
+
? new Uint8Array()
|
|
20
|
+
: (0, types_ts_1.toType)(index, types_ts_1.TypeOutput.Uint8Array);
|
|
21
|
+
const validatorIndexBytes = (0, types_ts_1.toType)(validatorIndex, types_ts_1.TypeOutput.BigInt) === constants_ts_1.BIGINT_0
|
|
22
|
+
? new Uint8Array()
|
|
23
|
+
: (0, types_ts_1.toType)(validatorIndex, types_ts_1.TypeOutput.Uint8Array);
|
|
24
|
+
const addressBytes = address instanceof address_ts_1.Address ? address.bytes : (0, types_ts_1.toType)(address, types_ts_1.TypeOutput.Uint8Array);
|
|
25
|
+
const amountBytes = (0, types_ts_1.toType)(amount, types_ts_1.TypeOutput.BigInt) === constants_ts_1.BIGINT_0
|
|
26
|
+
? new Uint8Array()
|
|
27
|
+
: (0, types_ts_1.toType)(amount, types_ts_1.TypeOutput.Uint8Array);
|
|
28
|
+
return [indexBytes, validatorIndexBytes, addressBytes, amountBytes];
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Representation of EIP-4895 withdrawal data
|
|
32
|
+
*/
|
|
33
|
+
class Withdrawal {
|
|
34
|
+
/**
|
|
35
|
+
* This constructor assigns and validates the values.
|
|
36
|
+
* Use the static factory methods to assist in creating a Withdrawal object from varying data types.
|
|
37
|
+
* Its amount is in Gwei to match CL representation and for eventual ssz withdrawalsRoot
|
|
38
|
+
*/
|
|
39
|
+
constructor(index, validatorIndex, address, amount) {
|
|
40
|
+
this.index = index;
|
|
41
|
+
this.validatorIndex = validatorIndex;
|
|
42
|
+
this.address = address;
|
|
43
|
+
this.amount = amount;
|
|
44
|
+
}
|
|
45
|
+
raw() {
|
|
46
|
+
return withdrawalToBytesArray(this);
|
|
47
|
+
}
|
|
48
|
+
toValue() {
|
|
49
|
+
return {
|
|
50
|
+
index: this.index,
|
|
51
|
+
validatorIndex: this.validatorIndex,
|
|
52
|
+
address: this.address.bytes,
|
|
53
|
+
amount: this.amount,
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
toJSON() {
|
|
57
|
+
return {
|
|
58
|
+
index: (0, bytes_ts_1.bigIntToHex)(this.index),
|
|
59
|
+
validatorIndex: (0, bytes_ts_1.bigIntToHex)(this.validatorIndex),
|
|
60
|
+
address: (0, bytes_ts_1.bytesToHex)(this.address.bytes),
|
|
61
|
+
amount: (0, bytes_ts_1.bigIntToHex)(this.amount),
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
exports.Withdrawal = Withdrawal;
|
|
66
|
+
/**
|
|
67
|
+
* Creates a validator withdrawal request to be submitted to the consensus layer
|
|
68
|
+
* @param withdrawalData the consensus layer index and validator index values for the
|
|
69
|
+
* validator requesting the withdrawal and the address and withdrawal amount of the request
|
|
70
|
+
* @returns a {@link Withdrawal} object
|
|
71
|
+
*/
|
|
72
|
+
function createWithdrawal(withdrawalData) {
|
|
73
|
+
const { index: indexData, validatorIndex: validatorIndexData, address: addressData, amount: amountData, } = withdrawalData;
|
|
74
|
+
const index = (0, types_ts_1.toType)(indexData, types_ts_1.TypeOutput.BigInt);
|
|
75
|
+
const validatorIndex = (0, types_ts_1.toType)(validatorIndexData, types_ts_1.TypeOutput.BigInt);
|
|
76
|
+
const address = addressData instanceof address_ts_1.Address ? addressData : new address_ts_1.Address((0, bytes_ts_1.toBytes)(addressData));
|
|
77
|
+
const amount = (0, types_ts_1.toType)(amountData, types_ts_1.TypeOutput.BigInt);
|
|
78
|
+
return new Withdrawal(index, validatorIndex, address, amount);
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Creates a validator withdrawal request to be submitted to the consensus layer from
|
|
82
|
+
* an RLP list
|
|
83
|
+
* @param withdrawalArray decoded RLP list of withdrawal data elements
|
|
84
|
+
* @returns a {@link Withdrawal} object
|
|
85
|
+
*/
|
|
86
|
+
function createWithdrawalFromBytesArray(withdrawalArray) {
|
|
87
|
+
if (withdrawalArray.length !== 4) {
|
|
88
|
+
throw Error(`Invalid withdrawalArray length expected=4 actual=${withdrawalArray.length}`);
|
|
89
|
+
}
|
|
90
|
+
const [index, validatorIndex, address, amount] = withdrawalArray;
|
|
91
|
+
return createWithdrawal({ index, validatorIndex, address, amount });
|
|
92
|
+
}
|
|
93
|
+
//# sourceMappingURL=withdrawal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"withdrawal.js","sourceRoot":"","sources":["../../src/withdrawal.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
import type { BigIntLike, BytesLike, PrefixedHexString } from './types.ts';
|
|
2
|
+
export interface AccountData {
|
|
3
|
+
nonce?: BigIntLike;
|
|
4
|
+
balance?: BigIntLike;
|
|
5
|
+
storageRoot?: BytesLike;
|
|
6
|
+
codeHash?: BytesLike;
|
|
7
|
+
}
|
|
8
|
+
export interface PartialAccountData {
|
|
9
|
+
nonce?: BigIntLike | null;
|
|
10
|
+
balance?: BigIntLike | null;
|
|
11
|
+
storageRoot?: BytesLike | null;
|
|
12
|
+
codeHash?: BytesLike | null;
|
|
13
|
+
codeSize?: BigIntLike | null;
|
|
14
|
+
version?: BigIntLike | null;
|
|
15
|
+
}
|
|
16
|
+
export type AccountBodyBytes = [Uint8Array, Uint8Array, Uint8Array, Uint8Array];
|
|
17
|
+
/**
|
|
18
|
+
* Account class to load and maintain the basic account objects.
|
|
19
|
+
* Supports partial loading and access required for stateless with null
|
|
20
|
+
* as the placeholder.
|
|
21
|
+
*
|
|
22
|
+
* Note: passing undefined in constructor is different from null
|
|
23
|
+
* While undefined leads to default assignment, null is retained
|
|
24
|
+
* to track the information not available/loaded because of partial
|
|
25
|
+
* witness access
|
|
26
|
+
*/
|
|
27
|
+
export declare class Account {
|
|
28
|
+
_nonce: bigint | null;
|
|
29
|
+
_balance: bigint | null;
|
|
30
|
+
_storageRoot: Uint8Array | null;
|
|
31
|
+
_codeHash: Uint8Array | null;
|
|
32
|
+
_codeSize: number | null;
|
|
33
|
+
_version: number | null;
|
|
34
|
+
get version(): number;
|
|
35
|
+
set version(_version: number);
|
|
36
|
+
get nonce(): bigint;
|
|
37
|
+
set nonce(_nonce: bigint);
|
|
38
|
+
get balance(): bigint;
|
|
39
|
+
set balance(_balance: bigint);
|
|
40
|
+
get storageRoot(): Uint8Array;
|
|
41
|
+
set storageRoot(_storageRoot: Uint8Array);
|
|
42
|
+
get codeHash(): Uint8Array;
|
|
43
|
+
set codeHash(_codeHash: Uint8Array);
|
|
44
|
+
get codeSize(): number;
|
|
45
|
+
set codeSize(_codeSize: number);
|
|
46
|
+
/**
|
|
47
|
+
* This constructor assigns and validates the values.
|
|
48
|
+
* It is not recommended to use this constructor directly. Instead use the static
|
|
49
|
+
* factory methods to assist in creating an Account from varying data types.
|
|
50
|
+
* undefined get assigned with the defaults, but null args are retained as is
|
|
51
|
+
* @deprecated
|
|
52
|
+
*/
|
|
53
|
+
constructor(nonce?: bigint | null, balance?: bigint | null, storageRoot?: Uint8Array | null, codeHash?: Uint8Array | null, codeSize?: number | null, version?: number | null);
|
|
54
|
+
private _validate;
|
|
55
|
+
/**
|
|
56
|
+
* Returns an array of Uint8Arrays of the raw bytes for the account, in order.
|
|
57
|
+
*/
|
|
58
|
+
raw(): Uint8Array[];
|
|
59
|
+
/**
|
|
60
|
+
* Returns the RLP serialization of the account as a `Uint8Array`.
|
|
61
|
+
*/
|
|
62
|
+
serialize(): Uint8Array;
|
|
63
|
+
serializeWithPartialInfo(): Uint8Array;
|
|
64
|
+
/**
|
|
65
|
+
* Returns a `Boolean` determining if the account is a contract.
|
|
66
|
+
*/
|
|
67
|
+
isContract(): boolean;
|
|
68
|
+
/**
|
|
69
|
+
* Returns a `Boolean` determining if the account is empty complying to the definition of
|
|
70
|
+
* account emptiness in [EIP-161](https://eips.ethereum.org/EIPS/eip-161):
|
|
71
|
+
* "An account is considered empty when it has no code and zero nonce and zero balance."
|
|
72
|
+
*/
|
|
73
|
+
isEmpty(): boolean;
|
|
74
|
+
}
|
|
75
|
+
export declare function createAccount(accountData: AccountData): Account;
|
|
76
|
+
export declare function createAccountFromBytesArray(values: Uint8Array[]): Account;
|
|
77
|
+
export declare function createPartialAccount(partialAccountData: PartialAccountData): Account;
|
|
78
|
+
export declare function createAccountFromRLP(serialized: Uint8Array): Account;
|
|
79
|
+
export declare function createPartialAccountFromRLP(serialized: Uint8Array): Account;
|
|
80
|
+
/**
|
|
81
|
+
* Checks if the address is a valid. Accepts checksummed addresses too.
|
|
82
|
+
*/
|
|
83
|
+
export declare const isValidAddress: (hexAddress: string) => hexAddress is PrefixedHexString;
|
|
84
|
+
/**
|
|
85
|
+
* Returns a checksummed address.
|
|
86
|
+
*
|
|
87
|
+
* If an eip1191ChainId is provided, the chainId will be included in the checksum calculation. This
|
|
88
|
+
* has the effect of checksummed addresses for one chain having invalid checksums for others.
|
|
89
|
+
* For more details see [EIP-1191](https://eips.ethereum.org/EIPS/eip-1191).
|
|
90
|
+
*
|
|
91
|
+
* WARNING: Checksums with and without the chainId will differ and the EIP-1191 checksum is not
|
|
92
|
+
* backwards compatible to the original widely adopted checksum format standard introduced in
|
|
93
|
+
* [EIP-55](https://eips.ethereum.org/EIPS/eip-55), so this will break in existing applications.
|
|
94
|
+
* Usage of this EIP is therefore discouraged unless you have a very targeted use case.
|
|
95
|
+
*/
|
|
96
|
+
export declare const toChecksumAddress: (hexAddress: string, eip1191ChainId?: BigIntLike) => PrefixedHexString;
|
|
97
|
+
/**
|
|
98
|
+
* Checks if the address is a valid checksummed address.
|
|
99
|
+
*
|
|
100
|
+
* See toChecksumAddress' documentation for details about the eip1191ChainId parameter.
|
|
101
|
+
*/
|
|
102
|
+
export declare const isValidChecksumAddress: (hexAddress: string, eip1191ChainId?: BigIntLike) => boolean;
|
|
103
|
+
/**
|
|
104
|
+
* Generates an address of a newly created contract.
|
|
105
|
+
* @param from The address which is creating this new address
|
|
106
|
+
* @param nonce The nonce of the from account
|
|
107
|
+
*/
|
|
108
|
+
export declare const generateAddress: (from: Uint8Array, nonce: Uint8Array) => Uint8Array;
|
|
109
|
+
/**
|
|
110
|
+
* Generates an address for a contract created using CREATE2.
|
|
111
|
+
* @param from The address which is creating this new address
|
|
112
|
+
* @param salt A salt
|
|
113
|
+
* @param initCode The init code of the contract being created
|
|
114
|
+
*/
|
|
115
|
+
export declare const generateAddress2: (from: Uint8Array, salt: Uint8Array, initCode: Uint8Array) => Uint8Array;
|
|
116
|
+
/**
|
|
117
|
+
* Checks if the private key satisfies the rules of the curve secp256k1.
|
|
118
|
+
*/
|
|
119
|
+
export declare const isValidPrivate: (privateKey: Uint8Array) => boolean;
|
|
120
|
+
/**
|
|
121
|
+
* Checks if the public key satisfies the rules of the curve secp256k1
|
|
122
|
+
* and the requirements of Ethereum.
|
|
123
|
+
* @param publicKey The two points of an uncompressed key, unless sanitize is enabled
|
|
124
|
+
* @param sanitize Accept public keys in other formats
|
|
125
|
+
*/
|
|
126
|
+
export declare const isValidPublic: (publicKey: Uint8Array, sanitize?: boolean) => boolean;
|
|
127
|
+
/**
|
|
128
|
+
* Returns the ethereum address of a given public key.
|
|
129
|
+
* Accepts "Ethereum public keys" and SEC1 encoded keys.
|
|
130
|
+
* @param pubKey The two points of an uncompressed key, unless sanitize is enabled
|
|
131
|
+
* @param sanitize Accept public keys in other formats
|
|
132
|
+
*/
|
|
133
|
+
export declare const pubToAddress: (pubKey: Uint8Array, sanitize?: boolean) => Uint8Array;
|
|
134
|
+
export declare const publicToAddress: (pubKey: Uint8Array, sanitize?: boolean) => Uint8Array;
|
|
135
|
+
/**
|
|
136
|
+
* Returns the ethereum public key of a given private key.
|
|
137
|
+
* @param privateKey A private key must be 256 bits wide
|
|
138
|
+
*/
|
|
139
|
+
export declare const privateToPublic: (privateKey: Uint8Array) => Uint8Array;
|
|
140
|
+
/**
|
|
141
|
+
* Returns the ethereum address of a given private key.
|
|
142
|
+
* @param privateKey A private key must be 256 bits wide
|
|
143
|
+
*/
|
|
144
|
+
export declare const privateToAddress: (privateKey: Uint8Array) => Uint8Array;
|
|
145
|
+
/**
|
|
146
|
+
* Converts a public key to the Ethereum format.
|
|
147
|
+
*/
|
|
148
|
+
export declare const importPublic: (publicKey: Uint8Array) => Uint8Array;
|
|
149
|
+
/**
|
|
150
|
+
* Returns the zero address.
|
|
151
|
+
*/
|
|
152
|
+
export declare const zeroAddress: () => PrefixedHexString;
|
|
153
|
+
/**
|
|
154
|
+
* Checks if a given address is the zero address.
|
|
155
|
+
*/
|
|
156
|
+
export declare const isZeroAddress: (hexAddress: string) => boolean;
|
|
157
|
+
export declare function accountBodyFromSlim(body: AccountBodyBytes): Uint8Array<ArrayBufferLike>[];
|
|
158
|
+
export declare function accountBodyToSlim(body: AccountBodyBytes): Uint8Array<ArrayBufferLike>[];
|
|
159
|
+
/**
|
|
160
|
+
* Converts a slim account (per snap protocol spec) to the RLP encoded version of the account
|
|
161
|
+
* @param body Array of 4 Uint8Array-like items to represent the account
|
|
162
|
+
* @returns RLP encoded version of the account
|
|
163
|
+
*/
|
|
164
|
+
export declare function accountBodyToRLP(body: AccountBodyBytes, couldBeSlim?: boolean): Uint8Array<ArrayBufferLike>;
|
|
165
|
+
//# sourceMappingURL=account.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"account.d.ts","sourceRoot":"","sources":["../../src/account.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAoB,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAE5F,MAAM,WAAW,WAAW;IAC1B,KAAK,CAAC,EAAE,UAAU,CAAA;IAClB,OAAO,CAAC,EAAE,UAAU,CAAA;IACpB,WAAW,CAAC,EAAE,SAAS,CAAA;IACvB,QAAQ,CAAC,EAAE,SAAS,CAAA;CACrB;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,CAAC,EAAE,UAAU,GAAG,IAAI,CAAA;IACzB,OAAO,CAAC,EAAE,UAAU,GAAG,IAAI,CAAA;IAC3B,WAAW,CAAC,EAAE,SAAS,GAAG,IAAI,CAAA;IAC9B,QAAQ,CAAC,EAAE,SAAS,GAAG,IAAI,CAAA;IAC3B,QAAQ,CAAC,EAAE,UAAU,GAAG,IAAI,CAAA;IAC5B,OAAO,CAAC,EAAE,UAAU,GAAG,IAAI,CAAA;CAC5B;AAED,MAAM,MAAM,gBAAgB,GAAG,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,CAAC,CAAA;AA+B/E;;;;;;;;;GASG;AACH,qBAAa,OAAO;IAClB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAO;IAC5B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAO;IAC9B,YAAY,EAAE,UAAU,GAAG,IAAI,CAAO;IACtC,SAAS,EAAE,UAAU,GAAG,IAAI,CAAO;IAEnC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAO;IAC/B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAO;IAE9B,IAAI,OAAO,IAOW,MAAM,CAD3B;IACD,IAAI,OAAO,CAAC,QAAQ,EAAE,MAAM,EAE3B;IAED,IAAI,KAAK,IAOS,MAAM,CADvB;IACD,IAAI,KAAK,CAAC,MAAM,EAAE,MAAM,EAEvB;IAED,IAAI,OAAO,IAOW,MAAM,CAD3B;IACD,IAAI,OAAO,CAAC,QAAQ,EAAE,MAAM,EAE3B;IAED,IAAI,WAAW,IAOe,UAAU,CADvC;IACD,IAAI,WAAW,CAAC,YAAY,EAAE,UAAU,EAEvC;IAED,IAAI,QAAQ,IAOY,UAAU,CADjC;IACD,IAAI,QAAQ,CAAC,SAAS,EAAE,UAAU,EAEjC;IAED,IAAI,QAAQ,IAOY,MAAM,CAD7B;IACD,IAAI,QAAQ,CAAC,SAAS,EAAE,MAAM,EAE7B;IAED;;;;;;OAMG;gBAED,KAAK,GAAE,MAAM,GAAG,IAAe,EAC/B,OAAO,GAAE,MAAM,GAAG,IAAe,EACjC,WAAW,GAAE,UAAU,GAAG,IAAoB,EAC9C,QAAQ,GAAE,UAAU,GAAG,IAAqB,EAC5C,QAAQ,GAAE,MAAM,GAAG,IAAQ,EAC3B,OAAO,GAAE,MAAM,GAAG,IAAQ;IAgB5B,OAAO,CAAC,SAAS;IAkBjB;;OAEG;IACH,GAAG,IAAI,UAAU,EAAE;IASnB;;OAEG;IACH,SAAS,IAAI,UAAU;IAIvB,wBAAwB,IAAI,UAAU;IA4CtC;;OAEG;IACH,UAAU,IAAI,OAAO;IAUrB;;;;OAIG;IACH,OAAO,IAAI,OAAO;CAgBnB;AAID,wBAAgB,aAAa,CAAC,WAAW,EAAE,WAAW,WAYrD;AAED,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,UAAU,EAAE,WAI/D;AAED,wBAAgB,oBAAoB,CAAC,kBAAkB,EAAE,kBAAkB,WAsB1E;AAED,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,UAAU,WAQ1D;AAED,wBAAgB,2BAA2B,CAAC,UAAU,EAAE,UAAU,WAuBjE;AAED;;GAEG;AACH,eAAO,MAAM,cAAc,GAAa,YAAY,MAAM,KAAG,UAAU,IAAI,iBAQ1E,CAAA;AAED;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,iBAAiB,GAC5B,YAAY,MAAM,EAClB,iBAAiB,UAAU,KAC1B,iBAuBF,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,GACjC,YAAY,MAAM,EAClB,iBAAiB,UAAU,KAC1B,OAEF,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,eAAe,GAAa,MAAM,UAAU,EAAE,OAAO,UAAU,KAAG,UAY9E,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,GAC3B,MAAM,UAAU,EAChB,MAAM,UAAU,EAChB,UAAU,UAAU,KACnB,UAeF,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,cAAc,GAAa,YAAY,UAAU,KAAG,OAEhE,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,aAAa,GAAa,WAAW,UAAU,EAAE,WAAU,OAAe,KAAG,OAuBzF,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,YAAY,GAAa,QAAQ,UAAU,EAAE,WAAU,OAAe,KAAG,UAUrF,CAAA;AACD,eAAO,MAAM,eAAe,WAXkB,UAAU,aAAY,OAAO,KAAW,UAW3C,CAAA;AAE3C;;;GAGG;AACH,eAAO,MAAM,eAAe,GAAa,YAAY,UAAU,KAAG,UAIjE,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,gBAAgB,GAAa,YAAY,UAAU,KAAG,UAElE,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,YAAY,GAAa,WAAW,UAAU,KAAG,UAM7D,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,WAAW,QAAgB,iBAEvC,CAAA;AAED;;GAEG;AACH,eAAO,MAAM,aAAa,GAAa,YAAY,MAAM,KAAG,OAS3D,CAAA;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,gBAAgB,iCAQzD;AAGD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,gBAAgB,iCAQvD;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,gBAAgB,EAAE,WAAW,UAAO,+BAG1E"}
|