essential-eth 0.2.2 → 0.3.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/lib/cjs/classes/Contract.d.ts +69 -0
- package/lib/cjs/classes/Contract.js +122 -0
- package/lib/cjs/{rpc → classes}/get-block.test.d.ts +0 -0
- package/lib/cjs/{rpc → classes}/get-block.test.js +5 -5
- package/lib/cjs/classes/test/Contract/crv-abi.d.ts +2 -0
- package/lib/cjs/classes/test/Contract/crv-abi.js +488 -0
- package/lib/{esm/rpc/get-block.test.d.ts → cjs/classes/test/Contract/crv.test.d.ts} +0 -0
- package/lib/cjs/classes/test/Contract/crv.test.js +48 -0
- package/lib/cjs/classes/test/Contract/fei-abi.d.ts +2 -0
- package/lib/cjs/classes/test/Contract/fei-abi.js +526 -0
- package/lib/cjs/classes/test/Contract/fei.test.d.ts +1 -0
- package/lib/cjs/classes/test/Contract/fei.test.js +62 -0
- package/lib/cjs/classes/test/Contract/foo-abi.d.ts +2 -0
- package/lib/cjs/classes/test/Contract/foo-abi.js +42 -0
- package/lib/cjs/classes/test/Contract/foo.test.d.ts +1 -0
- package/lib/cjs/classes/test/Contract/foo.test.js +25 -0
- package/lib/cjs/classes/test/Contract/uni.test.d.ts +1 -0
- package/lib/cjs/classes/test/Contract/uni.test.js +67 -0
- package/lib/cjs/classes/test/Contract/uniswap-abi.d.ts +2 -0
- package/lib/cjs/classes/test/Contract/uniswap-abi.js +121 -0
- package/lib/cjs/{rpc → classes}/utils/clean-block.d.ts +0 -0
- package/lib/cjs/{rpc → classes}/utils/clean-block.js +0 -0
- package/lib/cjs/{rpc → classes}/utils/clean-transaction.d.ts +0 -0
- package/lib/cjs/{rpc → classes}/utils/clean-transaction.js +0 -0
- package/lib/cjs/classes/utils/encode-decode-transaction.d.ts +3 -0
- package/lib/cjs/classes/utils/encode-decode-transaction.js +100 -0
- package/lib/cjs/classes/utils/fetchers.d.ts +9 -0
- package/lib/cjs/{rpc → classes}/utils/fetchers.js +8 -1
- package/lib/cjs/{rpc → classes}/utils/hex-to-decimal.d.ts +0 -0
- package/lib/cjs/{rpc → classes}/utils/hex-to-decimal.js +0 -0
- package/lib/cjs/index.d.ts +10 -6
- package/lib/cjs/index.js +12 -9
- package/lib/cjs/{rpc/index.d.ts → providers/JsonRpcProvider.d.ts} +5 -1
- package/lib/cjs/{rpc/index.js → providers/JsonRpcProvider.js} +14 -7
- package/lib/cjs/shared/tiny-big/tiny-big.d.ts +2 -2
- package/lib/cjs/types/Contract.types.d.ts +22 -0
- package/lib/cjs/types/Contract.types.js +2 -0
- package/lib/cjs/{ether-to-wei.d.ts → utils/ether-to-wei.d.ts} +3 -2
- package/lib/cjs/{ether-to-wei.js → utils/ether-to-wei.js} +4 -8
- package/lib/cjs/{is-address.d.ts → utils/is-address.d.ts} +0 -0
- package/lib/cjs/{is-address.js → utils/is-address.js} +3 -3
- package/lib/cjs/utils/tests/ether-to-wei.test.d.ts +1 -0
- package/lib/cjs/utils/tests/ether-to-wei.test.js +66 -0
- package/lib/cjs/utils/tests/is-address.test.d.ts +1 -0
- package/lib/cjs/utils/tests/is-address.test.js +56 -0
- package/lib/cjs/utils/tests/to-checksum-address.test.d.ts +1 -0
- package/lib/cjs/utils/tests/to-checksum-address.test.js +43 -0
- package/lib/cjs/utils/tests/wei-to-ether.test.d.ts +1 -0
- package/lib/cjs/utils/tests/wei-to-ether.test.js +69 -0
- package/lib/cjs/{to-checksum-address.d.ts → utils/to-checksum-address.d.ts} +0 -0
- package/lib/cjs/{to-checksum-address.js → utils/to-checksum-address.js} +1 -1
- package/lib/cjs/{wei-to-ether.d.ts → utils/wei-to-ether.d.ts} +3 -1
- package/lib/cjs/{wei-to-ether.js → utils/wei-to-ether.js} +4 -8
- package/lib/esm/classes/Contract.d.ts +12 -0
- package/lib/esm/classes/Contract.js +63 -0
- package/lib/esm/classes/get-block.test.d.ts +1 -0
- package/lib/esm/{rpc → classes}/get-block.test.js +5 -5
- package/lib/esm/classes/test/Contract/crv-abi.d.ts +2 -0
- package/lib/esm/classes/test/Contract/crv-abi.js +470 -0
- package/lib/esm/classes/test/Contract/crv.test.d.ts +1 -0
- package/lib/esm/classes/test/Contract/crv.test.js +43 -0
- package/lib/esm/classes/test/Contract/fei-abi.d.ts +2 -0
- package/lib/esm/classes/test/Contract/fei-abi.js +521 -0
- package/lib/esm/classes/test/Contract/fei.test.d.ts +1 -0
- package/lib/esm/classes/test/Contract/fei.test.js +46 -0
- package/lib/esm/classes/test/Contract/foo-abi.d.ts +2 -0
- package/lib/esm/classes/test/Contract/foo-abi.js +33 -0
- package/lib/esm/classes/test/Contract/foo.test.d.ts +1 -0
- package/lib/esm/classes/test/Contract/foo.test.js +14 -0
- package/lib/esm/classes/test/Contract/uni.test.d.ts +1 -0
- package/lib/esm/classes/test/Contract/uni.test.js +59 -0
- package/lib/esm/classes/test/Contract/uniswap-abi.d.ts +2 -0
- package/lib/esm/classes/test/Contract/uniswap-abi.js +116 -0
- package/lib/esm/{rpc → classes}/utils/clean-block.d.ts +0 -0
- package/lib/esm/{rpc → classes}/utils/clean-block.js +0 -0
- package/lib/esm/{rpc → classes}/utils/clean-transaction.d.ts +0 -0
- package/lib/esm/{rpc → classes}/utils/clean-transaction.js +0 -0
- package/lib/esm/classes/utils/encode-decode-transaction.d.ts +3 -0
- package/lib/esm/classes/utils/encode-decode-transaction.js +85 -0
- package/lib/esm/classes/utils/fetchers.d.ts +9 -0
- package/lib/esm/{rpc → classes}/utils/fetchers.js +8 -1
- package/lib/esm/{rpc → classes}/utils/hex-to-decimal.d.ts +0 -0
- package/lib/esm/{rpc → classes}/utils/hex-to-decimal.js +0 -0
- package/lib/esm/index.d.ts +10 -6
- package/lib/esm/index.js +7 -6
- package/lib/esm/{rpc/index.d.ts → providers/JsonRpcProvider.d.ts} +2 -1
- package/lib/esm/{rpc/index.js → providers/JsonRpcProvider.js} +8 -5
- package/lib/esm/shared/tiny-big/tiny-big.d.ts +2 -2
- package/lib/esm/types/Contract.types.d.ts +22 -0
- package/lib/esm/types/Contract.types.js +1 -0
- package/lib/esm/utils/ether-to-wei.d.ts +3 -0
- package/lib/esm/utils/ether-to-wei.js +7 -0
- package/lib/esm/{is-address.d.ts → utils/is-address.d.ts} +0 -0
- package/lib/esm/{is-address.js → utils/is-address.js} +2 -2
- package/lib/esm/utils/tests/ether-to-wei.test.d.ts +1 -0
- package/lib/esm/utils/tests/ether-to-wei.test.js +36 -0
- package/lib/esm/utils/tests/is-address.test.d.ts +1 -0
- package/lib/esm/utils/tests/is-address.test.js +49 -0
- package/lib/esm/utils/tests/to-checksum-address.test.d.ts +1 -0
- package/lib/esm/utils/tests/to-checksum-address.test.js +36 -0
- package/lib/esm/utils/tests/wei-to-ether.test.d.ts +1 -0
- package/lib/esm/utils/tests/wei-to-ether.test.js +38 -0
- package/lib/esm/{to-checksum-address.d.ts → utils/to-checksum-address.d.ts} +0 -0
- package/lib/esm/{to-checksum-address.js → utils/to-checksum-address.js} +1 -1
- package/lib/esm/utils/wei-to-ether.d.ts +3 -0
- package/lib/esm/utils/wei-to-ether.js +7 -0
- package/package.json +11 -11
- package/readme.md +68 -5
- package/lib/cjs/rpc/utils/fetchers.d.ts +0 -7
- package/lib/esm/ether-to-wei.d.ts +0 -2
- package/lib/esm/ether-to-wei.js +0 -8
- package/lib/esm/rpc/utils/fetchers.d.ts +0 -7
- package/lib/esm/wei-to-ether.d.ts +0 -1
- package/lib/esm/wei-to-ether.js +0 -8
package/readme.md
CHANGED
|
@@ -51,6 +51,8 @@ npm install --save essential-eth # TypeScript types load automatically
|
|
|
51
51
|
yarn add essential-eth # TypeScript types load automatically
|
|
52
52
|
```
|
|
53
53
|
|
|
54
|
+
<br/>
|
|
55
|
+
|
|
54
56
|
## Utils (do not require connecting to an Eth node)
|
|
55
57
|
|
|
56
58
|
```typescript
|
|
@@ -64,30 +66,43 @@ const { etherToWei } = require('essential-eth');
|
|
|
64
66
|
|
|
65
67
|
```typescript
|
|
66
68
|
// convert ether to wei
|
|
67
|
-
etherToWei(etherQuantity: string | number): TinyBig
|
|
69
|
+
etherToWei(etherQuantity: string | number | TinyBig | Big): TinyBig
|
|
68
70
|
```
|
|
69
71
|
|
|
70
72
|
#### `weiToEther`
|
|
71
73
|
|
|
72
74
|
```typescript
|
|
73
75
|
// convert wei to ether
|
|
74
|
-
weiToEther(weiQuantity: string | number): TinyBig
|
|
76
|
+
weiToEther(weiQuantity: string | number | TinyBig | Big): TinyBig
|
|
75
77
|
```
|
|
76
78
|
|
|
77
79
|
#### `toChecksumAddress`
|
|
78
80
|
|
|
79
81
|
```typescript
|
|
80
82
|
// return proper mixed-case address
|
|
83
|
+
// does not support ICAP addresses
|
|
81
84
|
toChecksumAddress(address: string): string
|
|
82
85
|
```
|
|
83
86
|
|
|
87
|
+
#### `isAddress`
|
|
88
|
+
|
|
89
|
+
```typescript
|
|
90
|
+
// returns boolean as to whether input is a valid address
|
|
91
|
+
// does not support ENS nor ICAP
|
|
92
|
+
isAddress(address: string): boolean
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
<br/>
|
|
96
|
+
|
|
84
97
|
## RPC
|
|
85
98
|
|
|
86
99
|
```typescript
|
|
87
|
-
import {
|
|
88
|
-
const essentialEth = new
|
|
100
|
+
import { JsonRpcProvider } from 'essential-eth';
|
|
101
|
+
const essentialEth = new JsonRpcProvider(
|
|
102
|
+
'RPC URL HERE' /* Try POKT or Infura */,
|
|
103
|
+
);
|
|
89
104
|
// OR for very quick testing (limited to 500 requests)
|
|
90
|
-
const essentialEth = new
|
|
105
|
+
const essentialEth = new JsonRpcProvider();
|
|
91
106
|
```
|
|
92
107
|
|
|
93
108
|
#### `getBlock`
|
|
@@ -99,6 +114,54 @@ Returns a [Block](src/types/block.types.ts)
|
|
|
99
114
|
getBlock(timeFrame: number | "latest" | "earliest" | "pending", returnTransactionObjects?: boolean): Promise<Block>
|
|
100
115
|
```
|
|
101
116
|
|
|
117
|
+
<br/>
|
|
118
|
+
|
|
119
|
+
## Contract
|
|
120
|
+
|
|
121
|
+
⚠️ Only read functions are currently supported. ⚠️
|
|
122
|
+
|
|
123
|
+
- This is highly experimental, do not use this in production yet.
|
|
124
|
+
|
|
125
|
+
```typescript
|
|
126
|
+
import { Contract, jsonRpcProvider, JSONABI } from 'essential-eth';
|
|
127
|
+
// UNI airdrop contract
|
|
128
|
+
const contractAddress = '0x090D4613473dEE047c3f2706764f49E0821D256e';
|
|
129
|
+
const provider = jsonRpcProvider(/* RPC URL optional */);
|
|
130
|
+
|
|
131
|
+
const abi: JSONABI = [
|
|
132
|
+
{
|
|
133
|
+
inputs: [
|
|
134
|
+
{
|
|
135
|
+
internalType: 'uint256',
|
|
136
|
+
name: 'index',
|
|
137
|
+
type: 'uint256',
|
|
138
|
+
},
|
|
139
|
+
],
|
|
140
|
+
name: 'isClaimed',
|
|
141
|
+
outputs: [
|
|
142
|
+
{
|
|
143
|
+
internalType: 'bool',
|
|
144
|
+
name: '',
|
|
145
|
+
type: 'bool',
|
|
146
|
+
},
|
|
147
|
+
],
|
|
148
|
+
stateMutability: 'view',
|
|
149
|
+
type: 'function',
|
|
150
|
+
},
|
|
151
|
+
];
|
|
152
|
+
|
|
153
|
+
const contract = new Contract(contractAddress, abi, provider);
|
|
154
|
+
|
|
155
|
+
(async () => {
|
|
156
|
+
// prints boolean as to whether index 0 has claimed airdrop or not
|
|
157
|
+
console.log(await contract.isClaimed(0));
|
|
158
|
+
})();
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
#### `contractFunctionName(args)`
|
|
162
|
+
|
|
163
|
+
Any function on a contract. Returns are the same as `ethers.js`, except that instead of BigNumber, `essential-eth` always returns a [`TinyBig`](https://essential-eth.vercel.app/classes/TinyBig.html)
|
|
164
|
+
|
|
102
165
|
<br/>
|
|
103
166
|
<br/>
|
|
104
167
|
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
export declare function post(url: string, body: Record<string, unknown>): Promise<any>;
|
|
2
|
-
export declare function buildRPCPostBody(method: 'eth_getBlockByNumber', params: any[]): {
|
|
3
|
-
jsonrpc: string;
|
|
4
|
-
id: number;
|
|
5
|
-
method: "eth_getBlockByNumber";
|
|
6
|
-
params: any[];
|
|
7
|
-
};
|
package/lib/esm/ether-to-wei.js
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import Big from 'big.js';
|
|
2
|
-
import { tinyBig } from './shared/tiny-big/tiny-big';
|
|
3
|
-
import { validateType } from './shared/validate-type';
|
|
4
|
-
export function etherToWei(etherQuantity) {
|
|
5
|
-
validateType(etherQuantity, ['string', 'number']);
|
|
6
|
-
const result = Big(etherQuantity).times('1000000000000000000').toString();
|
|
7
|
-
return tinyBig(result);
|
|
8
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
export declare function post(url: string, body: Record<string, unknown>): Promise<any>;
|
|
2
|
-
export declare function buildRPCPostBody(method: 'eth_getBlockByNumber', params: any[]): {
|
|
3
|
-
jsonrpc: string;
|
|
4
|
-
id: number;
|
|
5
|
-
method: "eth_getBlockByNumber";
|
|
6
|
-
params: any[];
|
|
7
|
-
};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function weiToEther(weiQuantity: string | number): import("./shared/tiny-big/tiny-big").TinyBig;
|
package/lib/esm/wei-to-ether.js
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import Big from 'big.js';
|
|
2
|
-
import { tinyBig } from './shared/tiny-big/tiny-big';
|
|
3
|
-
import { validateType } from './shared/validate-type';
|
|
4
|
-
export function weiToEther(weiQuantity) {
|
|
5
|
-
validateType(weiQuantity, ['string', 'number']);
|
|
6
|
-
const result = Big(weiQuantity).div('1000000000000000000').toString();
|
|
7
|
-
return tinyBig(result);
|
|
8
|
-
}
|