import { ethers, Contract, BigNumberish, PopulatedTransaction } from 'ethers'; import { EthereumAddress, EthereumPrivateKey, EthereumRawTransactionAction, EthereumTransactionAction } from '../../../models'; import { InitializerAction, EthereumGnosisMultisigCreateAccountOptions, EthereumGnosisMultisigTransactionOptions, EthereumMultisigRawTransaction, GnosisSafeSignature, GnosisSafeTransaction, GnosisSafeRawTransaction } from './models'; export declare function getEthersJsonRpcProvider(url: string): ethers.providers.JsonRpcProvider; export declare function isValidGnosisSignature(value: GnosisSafeSignature): boolean; /** Throws if signatures isn't properly formatted */ export declare function assertValidGnosisSignature(signature: GnosisSafeSignature): void; /** Convert certain bytes of signature data for Gnosis * This helper function can be used multiple times to ensure the signature is in right format */ export declare function signedMessageHashToGnosisSignatureData(signatureHash: string): string; /** Accepts GnosisSafeSignature or stringified version of it * Returns GnosisSafeSignature */ export declare function toGnosisSignature(value: string | GnosisSafeSignature): GnosisSafeSignature; /** stringify a Gnosis sig object */ export declare function toStringifiedEthereumSignatureFromGnosisSignature(gnosisSignature: GnosisSafeSignature): import("@open-rights-exchange/chain-js/dist/cjs/src/models/cryptoModels").SignatureBrand; /** stringify an array of Gnosis sig objects */ export declare function toStringifiedEthereumSignatureFromGnosisSignatures(gnosisSignatures: GnosisSafeSignature[]): import("@open-rights-exchange/chain-js/dist/cjs/src/models/cryptoModels").SignatureBrand[]; /** Returns GnosisSafe (for singleton master or proxy) contract instance, that is gonna be used for * generating action hashes that is going to be executed by multisigAccount wether is * creating account, or executing transactions */ export declare function getGnosisSafeContract(provider: ethers.providers.Provider, address: EthereumAddress): Contract; /** Returns the contract instance, allows for creating new multisig accounts */ export declare function getProxyFactoryEthersContract(provider: ethers.providers.Provider, address: EthereumAddress): Contract; export declare function setupInitilaizerAction(initializerAction?: InitializerAction): { initializerTo: import("@open-rights-exchange/chain-js/dist/cjs/src/models").ChainEntityNameBrand; initializerData: string; paymentToken: import("@open-rights-exchange/chain-js/dist/cjs/src/models").ChainEntityNameBrand; paymentAmount: number; paymentReceiver: import("@open-rights-exchange/chain-js/dist/cjs/src/models").ChainEntityNameBrand; }; export declare function sortHexStrings(hexArray: string[]): string[]; export declare function getCreateProxyInitializerData(multisigOptions: EthereumGnosisMultisigCreateAccountOptions, chainUrl: string): Promise; /** Throws if any options missing that are needed for proxy */ export declare function assertMultisigOptionsForProxyArePresent(multisigOptions: EthereumGnosisMultisigCreateAccountOptions): void; /** Simulates creating new multisigAccount deterministicly by using nonce * Returns the contract address that will be assigned for multisigAccount */ export declare function calculateProxyAddress(multisigOptions: EthereumGnosisMultisigCreateAccountOptions, chainUrl: string): Promise; /** Returns transaction object including ({to, data, ...}) for creating multisig proxy contract */ export declare function getCreateProxyTransaction(multisigOptions: EthereumGnosisMultisigCreateAccountOptions, chainUrl: string): Promise; export declare function calculateSafeTransactionHash(safe: Contract, safeTx: GnosisSafeTransaction, chainId: BigNumberish): string; export declare function getSafeNonce(multisigAddress: EthereumAddress, chainUrl: string): Promise; export declare function transactionToSafeTx(transactionAction: EthereumTransactionAction, transactionOptions: EthereumGnosisMultisigTransactionOptions): Promise; export declare function getSafeTransactionHash(multisigAddress: EthereumAddress, safeTx: GnosisSafeTransaction, chainUrl: string): Promise; export declare function signSafeTransactionHash(privateKey: EthereumPrivateKey, hash: string): Promise; /** Generates GnosisSafe signature object, that is gonne be passed in as serialized for executeTransaction */ export declare function signSafeTransaction(privateKey: EthereumPrivateKey, multisigAddress: EthereumAddress, safeTx: GnosisSafeTransaction, chainUrl: string): Promise; /** Sends approveHash call for gnosis and returns signature placeholder that indicates approval */ export declare function approveSafeTransaction(privateKey: EthereumPrivateKey, multisigAddress: EthereumAddress, safeTx: GnosisSafeTransaction, chainUrl: string): Promise; /** Sorts the signatures in right order and serializes */ export declare function buildSignatureBytes(signatures: GnosisSafeSignature[]): string; export declare function populatedToRawEthereumTransaction(populatedTrx: PopulatedTransaction): EthereumRawTransactionAction; export declare function getSafeExecuteRawTransaction(multisigAddress: EthereumAddress, safeTx: GnosisSafeTransaction, chainUrl: string, signatures: GnosisSafeSignature[], overrides?: any): Promise; export declare function executeSafeTransaction(safe: Contract, safeTx: GnosisSafeTransaction, signatures: GnosisSafeSignature[], overrides?: any): Promise; export declare function getSafeOwnersAndThreshold(multisigContract: Contract): Promise<{ owners: any; threshold: any; }>; export declare function applyDefaultAndSetCreateOptions(multisigOptions: EthereumGnosisMultisigCreateAccountOptions): { owners: import("@open-rights-exchange/chain-js/dist/cjs/src/models").ChainEntityNameBrand[]; threshold: number; saltNonce: number; gnosisSafeMaster?: import("@open-rights-exchange/chain-js/dist/cjs/src/models").ChainEntityNameBrand; proxyFactory?: import("@open-rights-exchange/chain-js/dist/cjs/src/models").ChainEntityNameBrand; fallbackHandler?: import("@open-rights-exchange/chain-js/dist/cjs/src/models").ChainEntityNameBrand; initializerAction?: InitializerAction; }; export declare function containsSafeSpecificField(value: EthereumTransactionAction | GnosisSafeRawTransaction): value is GnosisSafeRawTransaction;