@huma-finance/shared 0.0.30 → 0.0.32
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/abis/BaseCreditPool.json +1179 -1179
- package/dist/abis/BaseFeeManager.json +480 -480
- package/dist/abis/BasePoolConfig.json +1364 -1364
- package/dist/abis/ERC20TransferableReceivable.json +648 -648
- package/dist/abis/HDT.json +512 -512
- package/dist/abis/IConstantFlowAgreementV1.json +890 -890
- package/dist/abis/ISuperfluid.json +1122 -1122
- package/dist/abis/InvoiceNFT.json +625 -625
- package/dist/abis/Multisend.json +26 -26
- package/dist/abis/RealWorldReceivable.json +823 -823
- package/dist/abis/ReceivableFactoringPool.json +1529 -1529
- package/dist/abis/StreamFactoringPool.json +1523 -1523
- package/dist/abis/StreamFeeManager.json +522 -522
- package/dist/abis/SuperfluidPoolProcessor.json +692 -692
- package/dist/abis/TestERC20.json +358 -358
- package/dist/abis/TradableStream.json +850 -850
- package/dist/abis/Transfer.json +24 -24
- package/dist/abis/TransferNFT.json +27 -27
- package/dist/abis/erc20.json +117 -117
- package/dist/abis/erc2612.json +132 -132
- package/dist/abis/erc721.json +673 -673
- package/dist/abis/index.d.ts +3 -3
- package/dist/abis/index.js +3 -3
- package/dist/abis/types/BaseCreditPool.d.ts +803 -803
- package/dist/abis/types/BaseCreditPool.js +1 -1
- package/dist/abis/types/BaseFeeManager.d.ts +408 -408
- package/dist/abis/types/BaseFeeManager.js +1 -1
- package/dist/abis/types/BasePoolConfig.d.ts +1097 -1097
- package/dist/abis/types/BasePoolConfig.js +1 -1
- package/dist/abis/types/ERC20TransferableReceivable.d.ts +407 -407
- package/dist/abis/types/ERC20TransferableReceivable.js +1 -1
- package/dist/abis/types/Erc20.d.ts +168 -168
- package/dist/abis/types/Erc20.js +1 -1
- package/dist/abis/types/Erc2612.d.ts +192 -192
- package/dist/abis/types/Erc2612.js +1 -1
- package/dist/abis/types/Erc721.d.ts +474 -474
- package/dist/abis/types/Erc721.js +1 -1
- package/dist/abis/types/HDT.d.ts +369 -369
- package/dist/abis/types/HDT.js +1 -1
- package/dist/abis/types/IConstantFlowAgreementV1.d.ts +573 -573
- package/dist/abis/types/IConstantFlowAgreementV1.js +1 -1
- package/dist/abis/types/ISuperfluid.d.ts +728 -728
- package/dist/abis/types/ISuperfluid.js +1 -1
- package/dist/abis/types/InvoiceNFT.d.ts +425 -425
- package/dist/abis/types/InvoiceNFT.js +1 -1
- package/dist/abis/types/Multisend.d.ts +50 -50
- package/dist/abis/types/Multisend.js +1 -1
- package/dist/abis/types/RealWorldReceivable.d.ts +564 -564
- package/dist/abis/types/RealWorldReceivable.js +1 -1
- package/dist/abis/types/ReceivableFactoringPool.d.ts +999 -999
- package/dist/abis/types/ReceivableFactoringPool.js +1 -1
- package/dist/abis/types/StreamFactoringPool.d.ts +985 -985
- package/dist/abis/types/StreamFactoringPool.js +1 -1
- package/dist/abis/types/StreamFeeManager.d.ts +440 -440
- package/dist/abis/types/StreamFeeManager.js +1 -1
- package/dist/abis/types/SuperfluidPoolProcessor.d.ts +398 -398
- package/dist/abis/types/SuperfluidPoolProcessor.js +1 -1
- package/dist/abis/types/TestERC20.d.ts +270 -270
- package/dist/abis/types/TestERC20.js +1 -1
- package/dist/abis/types/TradableStream.d.ts +607 -607
- package/dist/abis/types/TradableStream.js +1 -1
- package/dist/abis/types/Transfer.d.ts +45 -45
- package/dist/abis/types/Transfer.js +1 -1
- package/dist/abis/types/TransferNFT.d.ts +45 -45
- package/dist/abis/types/TransferNFT.js +1 -1
- package/dist/abis/types/common.d.ts +22 -22
- package/dist/abis/types/common.js +1 -1
- package/dist/abis/types/factories/BaseCreditPool__factory.d.ts +931 -931
- package/dist/abis/types/factories/BaseCreditPool__factory.js +1193 -1192
- package/dist/abis/types/factories/BaseCreditPool__factory.js.map +1 -1
- package/dist/abis/types/factories/BaseFeeManager__factory.d.ts +379 -379
- package/dist/abis/types/factories/BaseFeeManager__factory.js +494 -493
- package/dist/abis/types/factories/BaseFeeManager__factory.js.map +1 -1
- package/dist/abis/types/factories/BasePoolConfig__factory.d.ts +1074 -1074
- package/dist/abis/types/factories/BasePoolConfig__factory.js +1378 -1377
- package/dist/abis/types/factories/BasePoolConfig__factory.js.map +1 -1
- package/dist/abis/types/factories/ERC20TransferableReceivable__factory.d.ts +508 -508
- package/dist/abis/types/factories/ERC20TransferableReceivable__factory.js +662 -661
- package/dist/abis/types/factories/ERC20TransferableReceivable__factory.js.map +1 -1
- package/dist/abis/types/factories/Erc20__factory.d.ts +175 -175
- package/dist/abis/types/factories/Erc20__factory.js +236 -235
- package/dist/abis/types/factories/Erc20__factory.js.map +1 -1
- package/dist/abis/types/factories/Erc2612__factory.d.ts +209 -209
- package/dist/abis/types/factories/Erc2612__factory.js +279 -278
- package/dist/abis/types/factories/Erc2612__factory.js.map +1 -1
- package/dist/abis/types/factories/Erc721__factory.d.ts +539 -539
- package/dist/abis/types/factories/Erc721__factory.js +687 -686
- package/dist/abis/types/factories/Erc721__factory.js.map +1 -1
- package/dist/abis/types/factories/HDT__factory.d.ts +399 -399
- package/dist/abis/types/factories/HDT__factory.js +526 -525
- package/dist/abis/types/factories/HDT__factory.js.map +1 -1
- package/dist/abis/types/factories/IConstantFlowAgreementV1__factory.d.ts +695 -695
- package/dist/abis/types/factories/IConstantFlowAgreementV1__factory.js +904 -903
- package/dist/abis/types/factories/IConstantFlowAgreementV1__factory.js.map +1 -1
- package/dist/abis/types/factories/ISuperfluid__factory.d.ts +866 -866
- package/dist/abis/types/factories/ISuperfluid__factory.js +1136 -1135
- package/dist/abis/types/factories/ISuperfluid__factory.js.map +1 -1
- package/dist/abis/types/factories/InvoiceNFT__factory.d.ts +489 -489
- package/dist/abis/types/factories/InvoiceNFT__factory.js +639 -638
- package/dist/abis/types/factories/InvoiceNFT__factory.js.map +1 -1
- package/dist/abis/types/factories/Multisend__factory.d.ts +26 -26
- package/dist/abis/types/factories/Multisend__factory.js +40 -39
- package/dist/abis/types/factories/Multisend__factory.js.map +1 -1
- package/dist/abis/types/factories/RealWorldReceivable__factory.d.ts +645 -645
- package/dist/abis/types/factories/RealWorldReceivable__factory.js +837 -836
- package/dist/abis/types/factories/RealWorldReceivable__factory.js.map +1 -1
- package/dist/abis/types/factories/ReceivableFactoringPool__factory.d.ts +1204 -1204
- package/dist/abis/types/factories/ReceivableFactoringPool__factory.js +1543 -1542
- package/dist/abis/types/factories/ReceivableFactoringPool__factory.js.map +1 -1
- package/dist/abis/types/factories/StreamFactoringPool__factory.d.ts +1200 -1200
- package/dist/abis/types/factories/StreamFactoringPool__factory.js +1537 -1536
- package/dist/abis/types/factories/StreamFactoringPool__factory.js.map +1 -1
- package/dist/abis/types/factories/StreamFeeManager__factory.d.ts +412 -412
- package/dist/abis/types/factories/StreamFeeManager__factory.js +536 -535
- package/dist/abis/types/factories/StreamFeeManager__factory.js.map +1 -1
- package/dist/abis/types/factories/SuperfluidPoolProcessor__factory.d.ts +546 -546
- package/dist/abis/types/factories/SuperfluidPoolProcessor__factory.js +706 -705
- package/dist/abis/types/factories/SuperfluidPoolProcessor__factory.js.map +1 -1
- package/dist/abis/types/factories/TestERC20__factory.d.ts +280 -280
- package/dist/abis/types/factories/TestERC20__factory.js +372 -371
- package/dist/abis/types/factories/TestERC20__factory.js.map +1 -1
- package/dist/abis/types/factories/TradableStream__factory.d.ts +663 -663
- package/dist/abis/types/factories/TradableStream__factory.js +864 -863
- package/dist/abis/types/factories/TradableStream__factory.js.map +1 -1
- package/dist/abis/types/factories/TransferNFT__factory.d.ts +28 -28
- package/dist/abis/types/factories/TransferNFT__factory.js +41 -40
- package/dist/abis/types/factories/TransferNFT__factory.js.map +1 -1
- package/dist/abis/types/factories/Transfer__factory.d.ts +25 -25
- package/dist/abis/types/factories/Transfer__factory.js +38 -37
- package/dist/abis/types/factories/Transfer__factory.js.map +1 -1
- package/dist/abis/types/factories/index.d.ts +21 -21
- package/dist/abis/types/factories/index.js +24 -24
- package/dist/abis/types/index.d.ts +43 -43
- package/dist/abis/types/index.js +22 -22
- package/dist/cjs/hooks/web3/index.js +2 -2
- package/dist/cjs/hooks/web3/index.js.map +1 -1
- package/dist/cjs/services/IdentityService.d.ts +17 -0
- package/dist/cjs/services/IdentityService.js +31 -4
- package/dist/cjs/services/IdentityService.js.map +1 -1
- package/dist/cjs/utils/chain.d.ts +3 -1
- package/dist/cjs/utils/chain.js +9 -1
- package/dist/cjs/utils/chain.js.map +1 -1
- package/dist/cjs/utils/config.d.ts +1 -0
- package/dist/cjs/utils/config.js +10 -1
- package/dist/cjs/utils/config.js.map +1 -1
- package/dist/cjs/utils/index.d.ts +2 -0
- package/dist/cjs/utils/index.js +2 -0
- package/dist/cjs/utils/index.js.map +1 -1
- package/dist/cjs/utils/notifi.d.ts +3 -0
- package/dist/cjs/utils/notifi.js +40 -0
- package/dist/cjs/utils/notifi.js.map +1 -0
- package/dist/cjs/utils/number.js +7 -1
- package/dist/cjs/utils/number.js.map +1 -1
- package/dist/cjs/utils/pool.d.ts +1 -0
- package/dist/cjs/utils/pool.js +9 -6
- package/dist/cjs/utils/pool.js.map +1 -1
- package/dist/cjs/utils/realWorldReceivable.d.ts +12 -0
- package/dist/cjs/utils/realWorldReceivable.js +3 -0
- package/dist/cjs/utils/realWorldReceivable.js.map +1 -0
- package/dist/hooks/index.d.ts +18 -18
- package/dist/hooks/index.js +18 -18
- package/dist/hooks/useActiveRoute.d.ts +8 -8
- package/dist/hooks/useActiveRoute.js +7 -7
- package/dist/hooks/useAsyncError.d.ts +14 -14
- package/dist/hooks/useAsyncError.js +22 -22
- package/dist/hooks/useCLPoolContract.d.ts +27 -27
- package/dist/hooks/useContract.d.ts +7 -7
- package/dist/hooks/useContractFunction.d.ts +18 -18
- package/dist/hooks/useContractFunction.js +54 -54
- package/dist/hooks/useERC2612Permit/ethPermit/index.d.ts +35 -35
- package/dist/hooks/useERC2612Permit/ethPermit/index.js +139 -139
- package/dist/hooks/useERC2612Permit/ethPermit/lib.d.ts +1 -1
- package/dist/hooks/useERC2612Permit/ethPermit/lib.js +21 -21
- package/dist/hooks/useERC2612Permit/ethPermit/rpc.d.ts +10 -10
- package/dist/hooks/useERC2612Permit/ethPermit/rpc.js +96 -96
- package/dist/hooks/useERC2612Permit/index.d.ts +6 -6
- package/dist/hooks/useERC2612Permit/index.js +31 -31
- package/dist/hooks/useFactoring.d.ts +19 -19
- package/dist/hooks/useForceRefresh.d.ts +1 -1
- package/dist/hooks/useForceRefresh.js +8 -8
- package/dist/hooks/useGetSizes.d.ts +12 -12
- package/dist/hooks/useGetSizes.js +19 -19
- package/dist/hooks/useInvoiceNFTContract.d.ts +11 -11
- package/dist/hooks/useMQ.d.ts +6 -6
- package/dist/hooks/useMQ.js +14 -14
- package/dist/hooks/useMount.d.ts +2 -2
- package/dist/hooks/useMount.js +8 -8
- package/dist/hooks/useParamsSearch.d.ts +2 -2
- package/dist/hooks/useParamsSearch.js +6 -6
- package/dist/hooks/usePool.d.ts +4 -4
- package/dist/hooks/usePoolContract.d.ts +73 -73
- package/dist/hooks/useRFPoolContract.d.ts +22 -22
- package/dist/hooks/useRefresh.d.ts +1 -1
- package/dist/hooks/useRefresh.js +47 -47
- package/dist/hooks/web3/index.d.ts +15 -15
- package/dist/hooks/web3/index.js +2 -2
- package/dist/hooks/web3/index.js.map +1 -1
- package/dist/hooks/web3/useConnectors.d.ts +17 -17
- package/dist/hooks/web3/useConnectors.js +24 -24
- package/dist/hooks/web3/useJsonRpcUrlsMap.d.ts +13 -13
- package/dist/index.d.ts +5 -5
- package/dist/services/EAService.d.ts +153 -153
- package/dist/services/IdentityService.d.ts +17 -0
- package/dist/services/IdentityService.js +32 -5
- package/dist/services/IdentityService.js.map +1 -1
- package/dist/services/RNService.d.ts +14 -14
- package/dist/services/index.d.ts +3 -3
- package/dist/tsconfig.cjs.tsbuildinfo +1 -1
- package/dist/utils/JsonRpcConnector.d.ts +11 -11
- package/dist/utils/JsonRpcConnector.js +38 -38
- package/dist/utils/WalletConnect.d.ts +10 -10
- package/dist/utils/WalletConnect.js +50 -49
- package/dist/utils/WalletConnect.js.map +1 -1
- package/dist/utils/chain.d.ts +3 -1
- package/dist/utils/chain.js +7 -0
- package/dist/utils/chain.js.map +1 -1
- package/dist/utils/common.d.ts +4 -4
- package/dist/utils/common.js +10 -10
- package/dist/utils/config.d.ts +1 -0
- package/dist/utils/config.js +10 -1
- package/dist/utils/config.js.map +1 -1
- package/dist/utils/const.d.ts +2 -2
- package/dist/utils/const.js +2 -2
- package/dist/utils/contractError.json +73 -73
- package/dist/utils/credit.d.ts +21 -21
- package/dist/utils/credit.js +35 -35
- package/dist/utils/errors.d.ts +26 -26
- package/dist/utils/errors.js +39 -39
- package/dist/utils/index.d.ts +2 -0
- package/dist/utils/index.js +2 -0
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/jsonRpcEndpoints.d.ts +12 -12
- package/dist/utils/notifi.d.ts +3 -0
- package/dist/utils/notifi.js +35 -0
- package/dist/utils/notifi.js.map +1 -0
- package/dist/utils/number.d.ts +5 -5
- package/dist/utils/number.js +7 -1
- package/dist/utils/number.js.map +1 -1
- package/dist/utils/pool.d.ts +1 -0
- package/dist/utils/pool.js +9 -6
- package/dist/utils/pool.js.map +1 -1
- package/dist/utils/realWorldReceivable.d.ts +12 -0
- package/dist/utils/realWorldReceivable.js +2 -0
- package/dist/utils/realWorldReceivable.js.map +1 -0
- package/dist/utils/request.d.ts +3 -3
- package/dist/utils/request.js +38 -38
- package/dist/utils/scientificToDecimal.d.ts +1 -1
- package/dist/utils/scientificToDecimal.js +57 -57
- package/dist/utils/string.d.ts +1 -1
- package/dist/utils/string.js +1 -1
- package/dist/utils/style.d.ts +1 -1
- package/dist/utils/style.js +12 -12
- package/dist/utils/time.d.ts +26 -26
- package/dist/utils/time.js +50 -50
- package/dist/utils/transaction.d.ts +32 -32
- package/dist/utils/transaction.js +87 -87
- package/dist/utils/web3.d.ts +4 -4
- package/dist/utils/web3.js +34 -34
- package/package.json +3 -3
|
@@ -1,27 +1,27 @@
|
|
|
1
|
-
import { BaseCreditPool } from '../abis/types/BaseCreditPool';
|
|
2
|
-
import { POOL_NAME } from '../utils/pool';
|
|
3
|
-
export declare function useCLPoolContract(poolName: POOL_NAME): BaseCreditPool | null;
|
|
4
|
-
export declare function useCLBaseConfigPoolContract(poolName: POOL_NAME): BaseCreditPool | null;
|
|
5
|
-
export declare function useCLPoolUnderlyingTokenContract(poolName: POOL_NAME): import("..").Erc20 | null;
|
|
6
|
-
export declare function useCLPoolUnderlyingToken(poolName: POOL_NAME): Partial<{
|
|
7
|
-
address: string;
|
|
8
|
-
symbol: string;
|
|
9
|
-
decimals: number;
|
|
10
|
-
}>;
|
|
11
|
-
export declare function useCLPoolUnderlyingTokenBalance(poolName: POOL_NAME, account?: string): import("ethers").BigNumber;
|
|
12
|
-
export declare function useCLPoolBalance(poolName: POOL_NAME): [import("ethers").BigNumber | undefined, () => void];
|
|
13
|
-
export declare function useCLStats(poolName: POOL_NAME, account?: string): [import("./usePoolContract").AccountStats, () => void];
|
|
14
|
-
export declare function useCLCreditRecord(poolName: POOL_NAME, account?: string): {
|
|
15
|
-
checkIsApproved: () => Promise<boolean>;
|
|
16
|
-
};
|
|
17
|
-
export declare function useCLFeeManager(poolName: POOL_NAME): {
|
|
18
|
-
fees: import("./usePoolContract").FeesType | undefined;
|
|
19
|
-
getFeesCharged: (requestedLoan: number) => number;
|
|
20
|
-
};
|
|
21
|
-
export declare function useCLPoolAllowance(poolName: POOL_NAME, account?: string): {
|
|
22
|
-
approved: boolean;
|
|
23
|
-
allowance: import("ethers").BigNumber;
|
|
24
|
-
loaded: boolean;
|
|
25
|
-
};
|
|
26
|
-
export declare function useCLLenderPosition(poolName: POOL_NAME, account?: string): [import("ethers").BigNumber | undefined, () => void];
|
|
27
|
-
export declare function useCLLenderApproved(poolName: POOL_NAME, account?: string): [boolean | undefined, () => void];
|
|
1
|
+
import { BaseCreditPool } from '../abis/types/BaseCreditPool';
|
|
2
|
+
import { POOL_NAME } from '../utils/pool';
|
|
3
|
+
export declare function useCLPoolContract(poolName: POOL_NAME): BaseCreditPool | null;
|
|
4
|
+
export declare function useCLBaseConfigPoolContract(poolName: POOL_NAME): BaseCreditPool | null;
|
|
5
|
+
export declare function useCLPoolUnderlyingTokenContract(poolName: POOL_NAME): import("..").Erc20 | null;
|
|
6
|
+
export declare function useCLPoolUnderlyingToken(poolName: POOL_NAME): Partial<{
|
|
7
|
+
address: string;
|
|
8
|
+
symbol: string;
|
|
9
|
+
decimals: number;
|
|
10
|
+
}>;
|
|
11
|
+
export declare function useCLPoolUnderlyingTokenBalance(poolName: POOL_NAME, account?: string): import("ethers").BigNumber;
|
|
12
|
+
export declare function useCLPoolBalance(poolName: POOL_NAME): [import("ethers").BigNumber | undefined, () => void];
|
|
13
|
+
export declare function useCLStats(poolName: POOL_NAME, account?: string): [import("./usePoolContract").AccountStats, () => void];
|
|
14
|
+
export declare function useCLCreditRecord(poolName: POOL_NAME, account?: string): {
|
|
15
|
+
checkIsApproved: () => Promise<boolean>;
|
|
16
|
+
};
|
|
17
|
+
export declare function useCLFeeManager(poolName: POOL_NAME): {
|
|
18
|
+
fees: import("./usePoolContract").FeesType | undefined;
|
|
19
|
+
getFeesCharged: (requestedLoan: number) => number;
|
|
20
|
+
};
|
|
21
|
+
export declare function useCLPoolAllowance(poolName: POOL_NAME, account?: string): {
|
|
22
|
+
approved: boolean;
|
|
23
|
+
allowance: import("ethers").BigNumber;
|
|
24
|
+
loaded: boolean;
|
|
25
|
+
};
|
|
26
|
+
export declare function useCLLenderPosition(poolName: POOL_NAME, account?: string): [import("ethers").BigNumber | undefined, () => void];
|
|
27
|
+
export declare function useCLLenderApproved(poolName: POOL_NAME, account?: string): [boolean | undefined, () => void];
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { Contract } from '@ethersproject/contracts';
|
|
2
|
-
import { Erc20, Erc721, TestERC20, Multisend } from '../abis/types';
|
|
3
|
-
export declare function useContract<T extends Contract = Contract>(address: string | undefined, ABI: any, withSignerIfPossible?: boolean): T | null;
|
|
4
|
-
export declare function useERC20Contract(tokenAddress?: string, withSignerIfPossible?: boolean): Erc20 | null;
|
|
5
|
-
export declare function useTestERC20Contract(tokenAddress?: string, withSignerIfPossible?: boolean): TestERC20 | null;
|
|
6
|
-
export declare function useERC721Contract(NFTAddress?: string): Erc721 | null;
|
|
7
|
-
export declare function useMultiSendContract(): Multisend | null;
|
|
1
|
+
import { Contract } from '@ethersproject/contracts';
|
|
2
|
+
import { Erc20, Erc721, TestERC20, Multisend } from '../abis/types';
|
|
3
|
+
export declare function useContract<T extends Contract = Contract>(address: string | undefined, ABI: any, withSignerIfPossible?: boolean): T | null;
|
|
4
|
+
export declare function useERC20Contract(tokenAddress?: string, withSignerIfPossible?: boolean): Erc20 | null;
|
|
5
|
+
export declare function useTestERC20Contract(tokenAddress?: string, withSignerIfPossible?: boolean): TestERC20 | null;
|
|
6
|
+
export declare function useERC721Contract(NFTAddress?: string): Erc721 | null;
|
|
7
|
+
export declare function useMultiSendContract(): Multisend | null;
|
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
import { Contract, ContractReceipt } from '@ethersproject/contracts';
|
|
2
|
-
import { Web3Provider } from '@ethersproject/providers';
|
|
3
|
-
import { TxStateType } from '../utils/transaction';
|
|
4
|
-
interface TxStateManagement {
|
|
5
|
-
state: TxStateType;
|
|
6
|
-
txHash: string;
|
|
7
|
-
txReceipt: ContractReceipt | undefined;
|
|
8
|
-
loading: boolean;
|
|
9
|
-
failReason: string;
|
|
10
|
-
}
|
|
11
|
-
export declare const txAtom: import("jotai").WritableAtom<TxStateManagement, TxStateManagement | typeof import("jotai/utils").RESET | ((prev: TxStateManagement) => TxStateManagement | typeof import("jotai/utils").RESET), void>;
|
|
12
|
-
export declare const sendTxAtom: import("jotai").WritableAtom<TxStateManagement, {
|
|
13
|
-
contract: Contract;
|
|
14
|
-
method: string;
|
|
15
|
-
params: any[];
|
|
16
|
-
provider: Web3Provider | undefined;
|
|
17
|
-
}, Promise<void>>;
|
|
18
|
-
export {};
|
|
1
|
+
import { Contract, ContractReceipt } from '@ethersproject/contracts';
|
|
2
|
+
import { Web3Provider } from '@ethersproject/providers';
|
|
3
|
+
import { TxStateType } from '../utils/transaction';
|
|
4
|
+
interface TxStateManagement {
|
|
5
|
+
state: TxStateType;
|
|
6
|
+
txHash: string;
|
|
7
|
+
txReceipt: ContractReceipt | undefined;
|
|
8
|
+
loading: boolean;
|
|
9
|
+
failReason: string;
|
|
10
|
+
}
|
|
11
|
+
export declare const txAtom: import("jotai").WritableAtom<TxStateManagement, TxStateManagement | typeof import("jotai/utils").RESET | ((prev: TxStateManagement) => TxStateManagement | typeof import("jotai/utils").RESET), void>;
|
|
12
|
+
export declare const sendTxAtom: import("jotai").WritableAtom<TxStateManagement, {
|
|
13
|
+
contract: Contract;
|
|
14
|
+
method: string;
|
|
15
|
+
params: any[];
|
|
16
|
+
provider: Web3Provider | undefined;
|
|
17
|
+
}, Promise<void>>;
|
|
18
|
+
export {};
|
|
@@ -1,55 +1,55 @@
|
|
|
1
|
-
import { atom } from 'jotai';
|
|
2
|
-
import { atomWithReset } from 'jotai/utils';
|
|
3
|
-
import { getTransactionErrorFromError, getTransactionErrorFromHash, increaseGasLimit, TxStateType, } from '../utils/transaction';
|
|
4
|
-
const txInitManagement = {
|
|
5
|
-
state: TxStateType.New,
|
|
6
|
-
txHash: '',
|
|
7
|
-
txReceipt: undefined,
|
|
8
|
-
loading: false,
|
|
9
|
-
failReason: '',
|
|
10
|
-
};
|
|
11
|
-
export const txAtom = atomWithReset(txInitManagement);
|
|
12
|
-
export const sendTxAtom = atom((get) => get(txAtom),
|
|
13
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
14
|
-
async (get, set, payload) => {
|
|
15
|
-
const { contract, method, params, provider } = payload;
|
|
16
|
-
try {
|
|
17
|
-
set(txAtom, Object.assign(Object.assign({}, get(txAtom)), { loading: true }));
|
|
18
|
-
const gasLimit = await contract.estimateGas[method](...params);
|
|
19
|
-
set(txAtom, Object.assign(Object.assign({}, get(txAtom)), { state: TxStateType.Signing }));
|
|
20
|
-
const tx = await contract[method](...params, {
|
|
21
|
-
gasLimit: increaseGasLimit(gasLimit),
|
|
22
|
-
});
|
|
23
|
-
set(txAtom, Object.assign(Object.assign({}, get(txAtom)), { state: TxStateType.Confirming, txHash: tx.hash }));
|
|
24
|
-
const txReceipt = await tx.wait();
|
|
25
|
-
set(txAtom, Object.assign(Object.assign({}, get(txAtom)), { txReceipt }));
|
|
26
|
-
// tx was mined successfully
|
|
27
|
-
if (txReceipt.status === 1) {
|
|
28
|
-
set(txAtom, Object.assign(Object.assign({}, get(txAtom)), { state: TxStateType.Success, loading: false }));
|
|
29
|
-
}
|
|
30
|
-
else {
|
|
31
|
-
let failReason = 'Send transaction failed';
|
|
32
|
-
if (provider) {
|
|
33
|
-
const failReasonReturned = await getTransactionErrorFromHash(provider, tx.hash);
|
|
34
|
-
if (failReasonReturned) {
|
|
35
|
-
failReason = failReasonReturned;
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
set(txAtom, Object.assign(Object.assign({}, get(txAtom)), { state: TxStateType.Failed, loading: false, failReason }));
|
|
39
|
-
}
|
|
40
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
41
|
-
}
|
|
42
|
-
catch (e) {
|
|
43
|
-
const contractErrorMessage = getTransactionErrorFromError(e);
|
|
44
|
-
if (contractErrorMessage) {
|
|
45
|
-
set(txAtom, Object.assign(Object.assign({}, get(txAtom)), { state: TxStateType.Failed, loading: false, failReason: contractErrorMessage }));
|
|
46
|
-
return;
|
|
47
|
-
}
|
|
48
|
-
if (e.code === 4001 || e.code === 'ACTION_REJECTED') {
|
|
49
|
-
set(txAtom, Object.assign(Object.assign({}, get(txAtom)), { state: TxStateType.Denied, loading: false, failReason: 'User has rejected the transaction' }));
|
|
50
|
-
return;
|
|
51
|
-
}
|
|
52
|
-
set(txAtom, Object.assign(Object.assign({}, get(txAtom)), { state: TxStateType.Invalid, loading: false, failReason: e.reason || `Send transaction failed` }));
|
|
53
|
-
}
|
|
54
|
-
});
|
|
1
|
+
import { atom } from 'jotai';
|
|
2
|
+
import { atomWithReset } from 'jotai/utils';
|
|
3
|
+
import { getTransactionErrorFromError, getTransactionErrorFromHash, increaseGasLimit, TxStateType, } from '../utils/transaction';
|
|
4
|
+
const txInitManagement = {
|
|
5
|
+
state: TxStateType.New,
|
|
6
|
+
txHash: '',
|
|
7
|
+
txReceipt: undefined,
|
|
8
|
+
loading: false,
|
|
9
|
+
failReason: '',
|
|
10
|
+
};
|
|
11
|
+
export const txAtom = atomWithReset(txInitManagement);
|
|
12
|
+
export const sendTxAtom = atom((get) => get(txAtom),
|
|
13
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
14
|
+
async (get, set, payload) => {
|
|
15
|
+
const { contract, method, params, provider } = payload;
|
|
16
|
+
try {
|
|
17
|
+
set(txAtom, Object.assign(Object.assign({}, get(txAtom)), { loading: true }));
|
|
18
|
+
const gasLimit = await contract.estimateGas[method](...params);
|
|
19
|
+
set(txAtom, Object.assign(Object.assign({}, get(txAtom)), { state: TxStateType.Signing }));
|
|
20
|
+
const tx = await contract[method](...params, {
|
|
21
|
+
gasLimit: increaseGasLimit(gasLimit),
|
|
22
|
+
});
|
|
23
|
+
set(txAtom, Object.assign(Object.assign({}, get(txAtom)), { state: TxStateType.Confirming, txHash: tx.hash }));
|
|
24
|
+
const txReceipt = await tx.wait();
|
|
25
|
+
set(txAtom, Object.assign(Object.assign({}, get(txAtom)), { txReceipt }));
|
|
26
|
+
// tx was mined successfully
|
|
27
|
+
if (txReceipt.status === 1) {
|
|
28
|
+
set(txAtom, Object.assign(Object.assign({}, get(txAtom)), { state: TxStateType.Success, loading: false }));
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
let failReason = 'Send transaction failed';
|
|
32
|
+
if (provider) {
|
|
33
|
+
const failReasonReturned = await getTransactionErrorFromHash(provider, tx.hash);
|
|
34
|
+
if (failReasonReturned) {
|
|
35
|
+
failReason = failReasonReturned;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
set(txAtom, Object.assign(Object.assign({}, get(txAtom)), { state: TxStateType.Failed, loading: false, failReason }));
|
|
39
|
+
}
|
|
40
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
41
|
+
}
|
|
42
|
+
catch (e) {
|
|
43
|
+
const contractErrorMessage = getTransactionErrorFromError(e);
|
|
44
|
+
if (contractErrorMessage) {
|
|
45
|
+
set(txAtom, Object.assign(Object.assign({}, get(txAtom)), { state: TxStateType.Failed, loading: false, failReason: contractErrorMessage }));
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
if (e.code === 4001 || e.code === 'ACTION_REJECTED') {
|
|
49
|
+
set(txAtom, Object.assign(Object.assign({}, get(txAtom)), { state: TxStateType.Denied, loading: false, failReason: 'User has rejected the transaction' }));
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
set(txAtom, Object.assign(Object.assign({}, get(txAtom)), { state: TxStateType.Invalid, loading: false, failReason: e.reason || `Send transaction failed` }));
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
55
|
//# sourceMappingURL=useContractFunction.js.map
|
|
@@ -1,35 +1,35 @@
|
|
|
1
|
-
import { RSV } from './rpc';
|
|
2
|
-
export interface DaiPermitMessage {
|
|
3
|
-
holder: string;
|
|
4
|
-
spender: string;
|
|
5
|
-
nonce: number;
|
|
6
|
-
expiry: number | string;
|
|
7
|
-
allowed?: boolean;
|
|
8
|
-
}
|
|
9
|
-
export interface ERC2612PermitMessage {
|
|
10
|
-
owner: string;
|
|
11
|
-
spender: string;
|
|
12
|
-
value: number | string;
|
|
13
|
-
nonce: number | string;
|
|
14
|
-
deadline: number | string;
|
|
15
|
-
}
|
|
16
|
-
export interface TradableStreamPermitMessage {
|
|
17
|
-
owner: string;
|
|
18
|
-
receiver: string;
|
|
19
|
-
token: string;
|
|
20
|
-
origin: string;
|
|
21
|
-
flowrate: string;
|
|
22
|
-
durationInSeconds: number;
|
|
23
|
-
nonce: number | string;
|
|
24
|
-
expiry: number | string;
|
|
25
|
-
}
|
|
26
|
-
interface Domain {
|
|
27
|
-
name: string;
|
|
28
|
-
version: string;
|
|
29
|
-
chainId: number;
|
|
30
|
-
verifyingContract: string;
|
|
31
|
-
}
|
|
32
|
-
export declare const signDaiPermit: (provider: any, token: string | Domain, holder: string, spender: string, expiry?: number, nonce?: number) => Promise<DaiPermitMessage & RSV>;
|
|
33
|
-
export declare const signERC2612Permit: (provider: any, token: string | Domain, owner: string, spender: string, value?: string | number, deadline?: number, nonce?: number) => Promise<ERC2612PermitMessage & RSV>;
|
|
34
|
-
export declare const signTradableStreamPermit: (provider: any, NFT: string | Domain, receiver: string, token: string, origin: string, owner: string, flowrate: string, durationInSeconds: number, expiry?: number, nonce?: number) => Promise<TradableStreamPermitMessage & RSV>;
|
|
35
|
-
export {};
|
|
1
|
+
import { RSV } from './rpc';
|
|
2
|
+
export interface DaiPermitMessage {
|
|
3
|
+
holder: string;
|
|
4
|
+
spender: string;
|
|
5
|
+
nonce: number;
|
|
6
|
+
expiry: number | string;
|
|
7
|
+
allowed?: boolean;
|
|
8
|
+
}
|
|
9
|
+
export interface ERC2612PermitMessage {
|
|
10
|
+
owner: string;
|
|
11
|
+
spender: string;
|
|
12
|
+
value: number | string;
|
|
13
|
+
nonce: number | string;
|
|
14
|
+
deadline: number | string;
|
|
15
|
+
}
|
|
16
|
+
export interface TradableStreamPermitMessage {
|
|
17
|
+
owner: string;
|
|
18
|
+
receiver: string;
|
|
19
|
+
token: string;
|
|
20
|
+
origin: string;
|
|
21
|
+
flowrate: string;
|
|
22
|
+
durationInSeconds: number;
|
|
23
|
+
nonce: number | string;
|
|
24
|
+
expiry: number | string;
|
|
25
|
+
}
|
|
26
|
+
interface Domain {
|
|
27
|
+
name: string;
|
|
28
|
+
version: string;
|
|
29
|
+
chainId: number;
|
|
30
|
+
verifyingContract: string;
|
|
31
|
+
}
|
|
32
|
+
export declare const signDaiPermit: (provider: any, token: string | Domain, holder: string, spender: string, expiry?: number, nonce?: number) => Promise<DaiPermitMessage & RSV>;
|
|
33
|
+
export declare const signERC2612Permit: (provider: any, token: string | Domain, owner: string, spender: string, value?: string | number, deadline?: number, nonce?: number) => Promise<ERC2612PermitMessage & RSV>;
|
|
34
|
+
export declare const signTradableStreamPermit: (provider: any, NFT: string | Domain, receiver: string, token: string, origin: string, owner: string, flowrate: string, durationInSeconds: number, expiry?: number, nonce?: number) => Promise<TradableStreamPermitMessage & RSV>;
|
|
35
|
+
export {};
|
|
@@ -1,140 +1,140 @@
|
|
|
1
|
-
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
|
-
import { hexToUtf8 } from './lib';
|
|
3
|
-
import { call, getChainId, signData } from './rpc';
|
|
4
|
-
const MAX_INT = '0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff';
|
|
5
|
-
const EIP712Domain = [
|
|
6
|
-
{ name: 'name', type: 'string' },
|
|
7
|
-
{ name: 'version', type: 'string' },
|
|
8
|
-
{ name: 'chainId', type: 'uint256' },
|
|
9
|
-
{ name: 'verifyingContract', type: 'address' },
|
|
10
|
-
];
|
|
11
|
-
const createTypedDaiData = (message, domain) => {
|
|
12
|
-
const typedData = {
|
|
13
|
-
types: {
|
|
14
|
-
EIP712Domain,
|
|
15
|
-
Permit: [
|
|
16
|
-
{ name: 'holder', type: 'address' },
|
|
17
|
-
{ name: 'spender', type: 'address' },
|
|
18
|
-
{ name: 'nonce', type: 'uint256' },
|
|
19
|
-
{ name: 'expiry', type: 'uint256' },
|
|
20
|
-
{ name: 'allowed', type: 'bool' },
|
|
21
|
-
],
|
|
22
|
-
},
|
|
23
|
-
primaryType: 'Permit',
|
|
24
|
-
domain,
|
|
25
|
-
message,
|
|
26
|
-
};
|
|
27
|
-
return typedData;
|
|
28
|
-
};
|
|
29
|
-
const createTypedERC2612Data = (message, domain) => {
|
|
30
|
-
const typedData = {
|
|
31
|
-
types: {
|
|
32
|
-
EIP712Domain,
|
|
33
|
-
Permit: [
|
|
34
|
-
{ name: 'owner', type: 'address' },
|
|
35
|
-
{ name: 'spender', type: 'address' },
|
|
36
|
-
{ name: 'value', type: 'uint256' },
|
|
37
|
-
{ name: 'nonce', type: 'uint256' },
|
|
38
|
-
{ name: 'deadline', type: 'uint256' },
|
|
39
|
-
],
|
|
40
|
-
},
|
|
41
|
-
primaryType: 'Permit',
|
|
42
|
-
domain,
|
|
43
|
-
message,
|
|
44
|
-
};
|
|
45
|
-
return typedData;
|
|
46
|
-
};
|
|
47
|
-
const createTypedTradableStreamData = (message, domain) => {
|
|
48
|
-
const typedData = {
|
|
49
|
-
types: {
|
|
50
|
-
EIP712Domain,
|
|
51
|
-
MintToWithAuthorization: [
|
|
52
|
-
{ name: 'receiver', type: 'address' },
|
|
53
|
-
{ name: 'token', type: 'address' },
|
|
54
|
-
{ name: 'origin', type: 'address' },
|
|
55
|
-
{ name: 'owner', type: 'address' },
|
|
56
|
-
{ name: 'flowrate', type: 'int96' },
|
|
57
|
-
{ name: 'durationInSeconds', type: 'uint256' },
|
|
58
|
-
{ name: 'nonce', type: 'uint256' },
|
|
59
|
-
{ name: 'expiry', type: 'uint256' },
|
|
60
|
-
],
|
|
61
|
-
},
|
|
62
|
-
primaryType: 'MintToWithAuthorization',
|
|
63
|
-
domain,
|
|
64
|
-
message,
|
|
65
|
-
};
|
|
66
|
-
return typedData;
|
|
67
|
-
};
|
|
68
|
-
const NONCES_FN = '0x7ecebe00';
|
|
69
|
-
const NAME_FN = '0x06fdde03';
|
|
70
|
-
const zeros = (numZeros) => ''.padEnd(numZeros, '0');
|
|
71
|
-
const getTokenName = async (provider, address) => hexToUtf8((await call(provider, address, NAME_FN)).substr(130));
|
|
72
|
-
const getDomain = async (provider, token) => {
|
|
73
|
-
if (typeof token !== 'string') {
|
|
74
|
-
return token;
|
|
75
|
-
}
|
|
76
|
-
const tokenAddress = token;
|
|
77
|
-
const [name, chainId] = await Promise.all([
|
|
78
|
-
getTokenName(provider, tokenAddress),
|
|
79
|
-
getChainId(provider),
|
|
80
|
-
]);
|
|
81
|
-
const domain = {
|
|
82
|
-
name,
|
|
83
|
-
version: '1',
|
|
84
|
-
chainId,
|
|
85
|
-
verifyingContract: tokenAddress,
|
|
86
|
-
};
|
|
87
|
-
return domain;
|
|
88
|
-
};
|
|
89
|
-
export const signDaiPermit = async (provider, token, holder, spender, expiry, nonce) => {
|
|
90
|
-
const tokenAddress = token.verifyingContract || token;
|
|
91
|
-
const message = {
|
|
92
|
-
holder,
|
|
93
|
-
spender,
|
|
94
|
-
nonce: nonce === undefined
|
|
95
|
-
? await call(provider, tokenAddress, `${NONCES_FN}${zeros(24)}${holder.substr(2)}`)
|
|
96
|
-
: nonce,
|
|
97
|
-
expiry: expiry || MAX_INT,
|
|
98
|
-
allowed: true,
|
|
99
|
-
};
|
|
100
|
-
const domain = await getDomain(provider, token);
|
|
101
|
-
const typedData = createTypedDaiData(message, domain);
|
|
102
|
-
const sig = await signData(provider, holder, typedData);
|
|
103
|
-
return Object.assign(Object.assign({}, sig), message);
|
|
104
|
-
};
|
|
105
|
-
export const signERC2612Permit = async (provider, token, owner, spender, value = MAX_INT, deadline, nonce) => {
|
|
106
|
-
const tokenAddress = token.verifyingContract || token;
|
|
107
|
-
const message = {
|
|
108
|
-
owner,
|
|
109
|
-
spender,
|
|
110
|
-
value,
|
|
111
|
-
nonce: nonce === undefined
|
|
112
|
-
? await call(provider, tokenAddress, `${NONCES_FN}${zeros(24)}${owner.substr(2)}`)
|
|
113
|
-
: nonce,
|
|
114
|
-
deadline: deadline || MAX_INT,
|
|
115
|
-
};
|
|
116
|
-
const domain = await getDomain(provider, token);
|
|
117
|
-
const typedData = createTypedERC2612Data(message, domain);
|
|
118
|
-
const sig = await signData(provider, owner, typedData);
|
|
119
|
-
return Object.assign(Object.assign({}, sig), message);
|
|
120
|
-
};
|
|
121
|
-
export const signTradableStreamPermit = async (provider, NFT, receiver, token, origin, owner, flowrate, durationInSeconds, expiry, nonce) => {
|
|
122
|
-
const NFTAddress = NFT.verifyingContract || NFT;
|
|
123
|
-
const message = {
|
|
124
|
-
receiver,
|
|
125
|
-
token,
|
|
126
|
-
origin,
|
|
127
|
-
owner,
|
|
128
|
-
flowrate,
|
|
129
|
-
durationInSeconds,
|
|
130
|
-
nonce: nonce === undefined
|
|
131
|
-
? await call(provider, NFTAddress, `${NONCES_FN}${zeros(24)}${receiver.substr(2)}`)
|
|
132
|
-
: nonce,
|
|
133
|
-
expiry: expiry || MAX_INT,
|
|
134
|
-
};
|
|
135
|
-
const domain = await getDomain(provider, NFT);
|
|
136
|
-
const typedData = createTypedTradableStreamData(message, domain);
|
|
137
|
-
const sig = await signData(provider, receiver, typedData);
|
|
138
|
-
return Object.assign(Object.assign({}, sig), message);
|
|
139
|
-
};
|
|
1
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
|
+
import { hexToUtf8 } from './lib';
|
|
3
|
+
import { call, getChainId, signData } from './rpc';
|
|
4
|
+
const MAX_INT = '0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff';
|
|
5
|
+
const EIP712Domain = [
|
|
6
|
+
{ name: 'name', type: 'string' },
|
|
7
|
+
{ name: 'version', type: 'string' },
|
|
8
|
+
{ name: 'chainId', type: 'uint256' },
|
|
9
|
+
{ name: 'verifyingContract', type: 'address' },
|
|
10
|
+
];
|
|
11
|
+
const createTypedDaiData = (message, domain) => {
|
|
12
|
+
const typedData = {
|
|
13
|
+
types: {
|
|
14
|
+
EIP712Domain,
|
|
15
|
+
Permit: [
|
|
16
|
+
{ name: 'holder', type: 'address' },
|
|
17
|
+
{ name: 'spender', type: 'address' },
|
|
18
|
+
{ name: 'nonce', type: 'uint256' },
|
|
19
|
+
{ name: 'expiry', type: 'uint256' },
|
|
20
|
+
{ name: 'allowed', type: 'bool' },
|
|
21
|
+
],
|
|
22
|
+
},
|
|
23
|
+
primaryType: 'Permit',
|
|
24
|
+
domain,
|
|
25
|
+
message,
|
|
26
|
+
};
|
|
27
|
+
return typedData;
|
|
28
|
+
};
|
|
29
|
+
const createTypedERC2612Data = (message, domain) => {
|
|
30
|
+
const typedData = {
|
|
31
|
+
types: {
|
|
32
|
+
EIP712Domain,
|
|
33
|
+
Permit: [
|
|
34
|
+
{ name: 'owner', type: 'address' },
|
|
35
|
+
{ name: 'spender', type: 'address' },
|
|
36
|
+
{ name: 'value', type: 'uint256' },
|
|
37
|
+
{ name: 'nonce', type: 'uint256' },
|
|
38
|
+
{ name: 'deadline', type: 'uint256' },
|
|
39
|
+
],
|
|
40
|
+
},
|
|
41
|
+
primaryType: 'Permit',
|
|
42
|
+
domain,
|
|
43
|
+
message,
|
|
44
|
+
};
|
|
45
|
+
return typedData;
|
|
46
|
+
};
|
|
47
|
+
const createTypedTradableStreamData = (message, domain) => {
|
|
48
|
+
const typedData = {
|
|
49
|
+
types: {
|
|
50
|
+
EIP712Domain,
|
|
51
|
+
MintToWithAuthorization: [
|
|
52
|
+
{ name: 'receiver', type: 'address' },
|
|
53
|
+
{ name: 'token', type: 'address' },
|
|
54
|
+
{ name: 'origin', type: 'address' },
|
|
55
|
+
{ name: 'owner', type: 'address' },
|
|
56
|
+
{ name: 'flowrate', type: 'int96' },
|
|
57
|
+
{ name: 'durationInSeconds', type: 'uint256' },
|
|
58
|
+
{ name: 'nonce', type: 'uint256' },
|
|
59
|
+
{ name: 'expiry', type: 'uint256' },
|
|
60
|
+
],
|
|
61
|
+
},
|
|
62
|
+
primaryType: 'MintToWithAuthorization',
|
|
63
|
+
domain,
|
|
64
|
+
message,
|
|
65
|
+
};
|
|
66
|
+
return typedData;
|
|
67
|
+
};
|
|
68
|
+
const NONCES_FN = '0x7ecebe00';
|
|
69
|
+
const NAME_FN = '0x06fdde03';
|
|
70
|
+
const zeros = (numZeros) => ''.padEnd(numZeros, '0');
|
|
71
|
+
const getTokenName = async (provider, address) => hexToUtf8((await call(provider, address, NAME_FN)).substr(130));
|
|
72
|
+
const getDomain = async (provider, token) => {
|
|
73
|
+
if (typeof token !== 'string') {
|
|
74
|
+
return token;
|
|
75
|
+
}
|
|
76
|
+
const tokenAddress = token;
|
|
77
|
+
const [name, chainId] = await Promise.all([
|
|
78
|
+
getTokenName(provider, tokenAddress),
|
|
79
|
+
getChainId(provider),
|
|
80
|
+
]);
|
|
81
|
+
const domain = {
|
|
82
|
+
name,
|
|
83
|
+
version: '1',
|
|
84
|
+
chainId,
|
|
85
|
+
verifyingContract: tokenAddress,
|
|
86
|
+
};
|
|
87
|
+
return domain;
|
|
88
|
+
};
|
|
89
|
+
export const signDaiPermit = async (provider, token, holder, spender, expiry, nonce) => {
|
|
90
|
+
const tokenAddress = token.verifyingContract || token;
|
|
91
|
+
const message = {
|
|
92
|
+
holder,
|
|
93
|
+
spender,
|
|
94
|
+
nonce: nonce === undefined
|
|
95
|
+
? await call(provider, tokenAddress, `${NONCES_FN}${zeros(24)}${holder.substr(2)}`)
|
|
96
|
+
: nonce,
|
|
97
|
+
expiry: expiry || MAX_INT,
|
|
98
|
+
allowed: true,
|
|
99
|
+
};
|
|
100
|
+
const domain = await getDomain(provider, token);
|
|
101
|
+
const typedData = createTypedDaiData(message, domain);
|
|
102
|
+
const sig = await signData(provider, holder, typedData);
|
|
103
|
+
return Object.assign(Object.assign({}, sig), message);
|
|
104
|
+
};
|
|
105
|
+
export const signERC2612Permit = async (provider, token, owner, spender, value = MAX_INT, deadline, nonce) => {
|
|
106
|
+
const tokenAddress = token.verifyingContract || token;
|
|
107
|
+
const message = {
|
|
108
|
+
owner,
|
|
109
|
+
spender,
|
|
110
|
+
value,
|
|
111
|
+
nonce: nonce === undefined
|
|
112
|
+
? await call(provider, tokenAddress, `${NONCES_FN}${zeros(24)}${owner.substr(2)}`)
|
|
113
|
+
: nonce,
|
|
114
|
+
deadline: deadline || MAX_INT,
|
|
115
|
+
};
|
|
116
|
+
const domain = await getDomain(provider, token);
|
|
117
|
+
const typedData = createTypedERC2612Data(message, domain);
|
|
118
|
+
const sig = await signData(provider, owner, typedData);
|
|
119
|
+
return Object.assign(Object.assign({}, sig), message);
|
|
120
|
+
};
|
|
121
|
+
export const signTradableStreamPermit = async (provider, NFT, receiver, token, origin, owner, flowrate, durationInSeconds, expiry, nonce) => {
|
|
122
|
+
const NFTAddress = NFT.verifyingContract || NFT;
|
|
123
|
+
const message = {
|
|
124
|
+
receiver,
|
|
125
|
+
token,
|
|
126
|
+
origin,
|
|
127
|
+
owner,
|
|
128
|
+
flowrate,
|
|
129
|
+
durationInSeconds,
|
|
130
|
+
nonce: nonce === undefined
|
|
131
|
+
? await call(provider, NFTAddress, `${NONCES_FN}${zeros(24)}${receiver.substr(2)}`)
|
|
132
|
+
: nonce,
|
|
133
|
+
expiry: expiry || MAX_INT,
|
|
134
|
+
};
|
|
135
|
+
const domain = await getDomain(provider, NFT);
|
|
136
|
+
const typedData = createTypedTradableStreamData(message, domain);
|
|
137
|
+
const sig = await signData(provider, receiver, typedData);
|
|
138
|
+
return Object.assign(Object.assign({}, sig), message);
|
|
139
|
+
};
|
|
140
140
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const hexToUtf8: (hex: string) => string;
|
|
1
|
+
export declare const hexToUtf8: (hex: string) => string;
|
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
import utf8 from 'utf8';
|
|
2
|
-
export const hexToUtf8 = (hex) => {
|
|
3
|
-
// if (!isHexStrict(hex))
|
|
4
|
-
// throw new Error('The parameter "'+ hex +'" must be a valid HEX string.');
|
|
5
|
-
let str = '';
|
|
6
|
-
let code = 0;
|
|
7
|
-
hex = hex.replace(/^0x/i, '');
|
|
8
|
-
// remove 00 padding from either side
|
|
9
|
-
hex = hex.replace(/^(?:00)*/, '');
|
|
10
|
-
hex = hex.split('').reverse().join('');
|
|
11
|
-
hex = hex.replace(/^(?:00)*/, '');
|
|
12
|
-
hex = hex.split('').reverse().join('');
|
|
13
|
-
const l = hex.length;
|
|
14
|
-
for (let i = 0; i < l; i += 2) {
|
|
15
|
-
code = parseInt(hex.substr(i, 2), 16);
|
|
16
|
-
// if (code !== 0) {
|
|
17
|
-
str += String.fromCharCode(code);
|
|
18
|
-
// }
|
|
19
|
-
}
|
|
20
|
-
return utf8.decode(str);
|
|
21
|
-
};
|
|
1
|
+
import utf8 from 'utf8';
|
|
2
|
+
export const hexToUtf8 = (hex) => {
|
|
3
|
+
// if (!isHexStrict(hex))
|
|
4
|
+
// throw new Error('The parameter "'+ hex +'" must be a valid HEX string.');
|
|
5
|
+
let str = '';
|
|
6
|
+
let code = 0;
|
|
7
|
+
hex = hex.replace(/^0x/i, '');
|
|
8
|
+
// remove 00 padding from either side
|
|
9
|
+
hex = hex.replace(/^(?:00)*/, '');
|
|
10
|
+
hex = hex.split('').reverse().join('');
|
|
11
|
+
hex = hex.replace(/^(?:00)*/, '');
|
|
12
|
+
hex = hex.split('').reverse().join('');
|
|
13
|
+
const l = hex.length;
|
|
14
|
+
for (let i = 0; i < l; i += 2) {
|
|
15
|
+
code = parseInt(hex.substr(i, 2), 16);
|
|
16
|
+
// if (code !== 0) {
|
|
17
|
+
str += String.fromCharCode(code);
|
|
18
|
+
// }
|
|
19
|
+
}
|
|
20
|
+
return utf8.decode(str);
|
|
21
|
+
};
|
|
22
22
|
//# sourceMappingURL=lib.js.map
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
export declare const send: (provider: any, method: string, params?: any[]) => Promise<any>;
|
|
2
|
-
export interface RSV {
|
|
3
|
-
r: string;
|
|
4
|
-
s: string;
|
|
5
|
-
v: number;
|
|
6
|
-
}
|
|
7
|
-
export declare const signData: (provider: any, fromAddress: string, typeData: any) => Promise<RSV>;
|
|
8
|
-
export declare const setChainIdOverride: (id: number) => void;
|
|
9
|
-
export declare const getChainId: (provider: any) => Promise<any>;
|
|
10
|
-
export declare const call: (provider: any, to: string, data: string) => Promise<any>;
|
|
1
|
+
export declare const send: (provider: any, method: string, params?: any[]) => Promise<any>;
|
|
2
|
+
export interface RSV {
|
|
3
|
+
r: string;
|
|
4
|
+
s: string;
|
|
5
|
+
v: number;
|
|
6
|
+
}
|
|
7
|
+
export declare const signData: (provider: any, fromAddress: string, typeData: any) => Promise<RSV>;
|
|
8
|
+
export declare const setChainIdOverride: (id: number) => void;
|
|
9
|
+
export declare const getChainId: (provider: any) => Promise<any>;
|
|
10
|
+
export declare const call: (provider: any, to: string, data: string) => Promise<any>;
|