UNPKG

blocklock-js

Version:

A library for encrypting and decrypting data for the future

390 lines (389 loc) 25.5 kB
import { ContractFactory, ContractTransactionResponse } from "ethers"; import type { Signer, AddressLike, ContractDeployTransaction, ContractRunner } from "ethers"; import type { NonPayableOverrides } from "../common"; import type { MockBlocklockRevertingReceiver, MockBlocklockRevertingReceiverInterface } from "../MockBlocklockRevertingReceiver"; type MockBlocklockRevertingReceiverConstructorParams = [signer?: Signer] | ConstructorParameters<typeof ContractFactory>; export declare class MockBlocklockRevertingReceiver__factory extends ContractFactory { constructor(...args: MockBlocklockRevertingReceiverConstructorParams); getDeployTransaction(blocklockContract: AddressLike, overrides?: NonPayableOverrides & { from?: string; }): Promise<ContractDeployTransaction>; deploy(blocklockContract: AddressLike, overrides?: NonPayableOverrides & { from?: string; }): Promise<MockBlocklockRevertingReceiver & { deploymentTransaction(): ContractTransactionResponse; }>; connect(runner: ContractRunner | null): MockBlocklockRevertingReceiver__factory; static readonly bytecode = "0x608060405234801561000f575f5ffd5b5060405161167438038061167483398101604081905261002e91610186565b8033805f816100845760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f7420736574206f776e657220746f207a65726f000000000000000060448201526064015b60405180910390fd5b5f80546001600160a01b0319166001600160a01b03848116919091179091558116156100b3576100b3816100de565b5050600280546001600160a01b0319166001600160a01b039390931692909217909155506101b39050565b336001600160a01b038216036101365760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c66000000000000000000604482015260640161007b565b600180546001600160a01b0319166001600160a01b038381169182179092555f8054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b5f60208284031215610196575f5ffd5b81516001600160a01b03811681146101ac575f5ffd5b9392505050565b6114b4806101c05f395ff3fe608060405260043610610112575f3560e01c806379ba50971161009d57806397a9c2851161006257806397a9c285146102f7578063b8ca8dd81461030c578063b96dbba71461032b578063e64a66ea14610333578063f2fde38b1461033b575f5ffd5b806379ba509714610252578063809800431461026657806386e560be146102855780638da5cb5b146102a857806393b9740a146102d8575f5ffd5b806336bfffed116100e357806336bfffed146101ae5780634d3de353146101cd5780634fa26d40146101e057806359608fda146101ff5780635d94180214610233575f5ffd5b80626d6cae1461015557806309c1ba2e1461017d57806312065fe0146101925780631d2b2afd146101a4575f5ffd5b3661015157604080513381523460208201527f88a5966d370b9919b20f3e2c13ff65706f196a4e32cc2c12bf57088f88525874910160405180910390a1005b5f5ffd5b348015610160575f5ffd5b5061016a60045481565b6040519081526020015b60405180910390f35b348015610188575f5ffd5b5061016a60035481565b34801561019d575f5ffd5b504761016a565b6101ac61035a565b005b3480156101b9575f5ffd5b506101ac6101c8366004610e6d565b610401565b61016a6101db366004610f23565b6104fe565b3480156101eb575f5ffd5b506101ac6101fa366004610fc6565b610561565b34801561020a575f5ffd5b5061021e610219366004610f23565b6105eb565b60408051928352602083019190915201610174565b34801561023e575f5ffd5b506101ac61024d366004610fe6565b610656565b34801561025d575f5ffd5b506101ac6106b7565b348015610271575f5ffd5b506101ac61028036600461102e565b610760565b348015610290575f5ffd5b5061029961079a565b6040516101749392919061109b565b3480156102b3575f5ffd5b505f546001600160a01b03165b6040516001600160a01b039091168152602001610174565b3480156102e3575f5ffd5b506002546102c0906001600160a01b031681565b348015610302575f5ffd5b5061016a600b5481565b348015610317575f5ffd5b506101ac6103263660046110ea565b610926565b6101ac6109f9565b6101ac610a40565b348015610346575f5ffd5b506101ac610355366004610fc6565b610abf565b6003545f0361039e5760405162461bcd60e51b815260206004820152600b60248201526a1cdd58881b9bdd081cd95d60aa1b60448201526064015b60405180910390fd5b60025460035460405163256d573f60e21b815260048101919091526001600160a01b03909116906395b55cfc9034906024015b5f604051808303818588803b1580156103e8575f5ffd5b505af11580156103fa573d5f5f3e3d5ffd5b5050505050565b610409610ad3565b6003545f0361044a5760405162461bcd60e51b815260206004820152600d60248201526c1cdd589251081b9bdd081cd95d609a1b6044820152606401610395565b5f5b818110156104f9576002546003546001600160a01b039091169063bec4c08c9085858581811061047e5761047e611114565b90506020020160208101906104939190610fc6565b6040516001600160e01b031960e085901b16815260048101929092526001600160a01b031660248201526044015f604051808303815f87803b1580156104d7575f5ffd5b505af11580156104e9573d5f5f3e3d5ffd5b50506001909201915061044c9050565b505050565b5f5f6105418686868080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92019190915250889250610b27915050565b6004819055905082600561055582826112b5565b50909695505050505050565b610569610ad3565b6001600160a01b0381166105c95760405162461bcd60e51b815260206004820152602160248201527f43616e6e6f7420736574207a65726f20616464726573732061732073656e64656044820152603960f91b6064820152608401610395565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b5f5f5f5f6106308888888080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152508a9250610ba5915050565b6004829055909250905084600561064782826112b5565b50919890975095505050505050565b6002546001600160a01b031633146106b05760405162461bcd60e51b815260206004820181905260248201527f4f6e6c7920626c6f636b6c6f636b20636f6e74726163742063616e2063616c6c6044820152606401610395565b6104f95f5ffd5b6001546001600160a01b0316331461070a5760405162461bcd60e51b815260206004820152601660248201527526bab9ba10313290383937b837b9b2b21037bbb732b960511b6044820152606401610395565b5f8054336001600160a01b0319808316821784556001805490911690556040516001600160a01b0390921692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a350565b610768610ad3565b600381905560405181907f5f479ac993925efae23839aa1c813b6ecb2fe1bbd14dc78295ab267d2fca4368905f90a250565b604080516080810180835260059283918391820190839060029082845b8154815260200190600101908083116107b757505050918352505060408051808201918290526020909201919060028481019182845b8154815260200190600101908083116107ed57505050505081525050908060040180546108199061117f565b80601f01602080910402602001604051908101604052809291908181526020018280546108459061117f565b80156108905780601f1061086757610100808354040283529160200191610890565b820191905f5260205f20905b81548152906001019060200180831161087357829003601f168201915b5050505050908060050180546108a59061117f565b80601f01602080910402602001604051908101604052809291908181526020018280546108d19061117f565b801561091c5780601f106108f35761010080835404028352916020019161091c565b820191905f5260205f20905b8154815290600101906020018083116108ff57829003601f168201915b5050505050905083565b61092e610ad3565b8147101561097e5760405162461bcd60e51b815260206004820152601e60248201527f496e73756666696369656e742066756e647320696e20636f6e747261637400006044820152606401610395565b6040516001600160a01b0382169083156108fc029084905f818181858888f193505050501580156109b1573d5f5f3e3d5ffd5b50806001600160a01b03167f7084f5476618d8e60b11ef0d7d3f06914655adb8793e28ff7f018d4c76d505d5836040516109ed91815260200190565b60405180910390a25050565b610a01610ad3565b610a09610c9b565b600381905560025460405163256d573f60e21b815260048101929092526001600160a01b0316906395b55cfc9034906024016103d1565b5f3411610a885760405162461bcd60e51b81526020600482015260166024820152750b2deea40daeae6e840e6cadcc840e6dedaca408aa8960531b6044820152606401610395565b60405134815233907f5af8184bef8e4b45eb9f6ed7734d04da38ced226495548f46e0c8ff8d7d9a5249060200160405180910390a2565b610ac7610ad3565b610ad081610dc5565b50565b5f546001600160a01b03163314610b255760405162461bcd60e51b815260206004820152601660248201527527b7363c9031b0b63630b1363290313c9037bbb732b960511b6044820152606401610395565b565b6002546003546040516262b1d960e41b81525f926001600160a01b03169163062b1d9091610b5d918891889088906004016113f6565b6020604051808303815f875af1158015610b79573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b9d9190611437565b949350505050565b600254604051634b16093560e01b815263ffffffff851660048201525f9182916001600160a01b0390911690634b16093590602401602060405180830381865afa158015610bf5573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c199190611437565b600254604051637909dc7b60e01b81529192506001600160a01b031690637909dc7b908390610c509089908990899060040161144e565b60206040518083038185885af1158015610c6c573d5f5f3e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610c919190611437565b9150935093915050565b5f6003545f14610ced5760405162461bcd60e51b815260206004820152601a60248201527f537562736372697074696f6e4964206973206e6f74207a65726f0000000000006044820152606401610395565b60025f9054906101000a90046001600160a01b03166001600160a01b031663a21a23e46040518163ffffffff1660e01b81526004016020604051808303815f875af1158015610d3e573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d629190611437565b600254604051632fb1302360e21b8152600481018390523060248201529192506001600160a01b03169063bec4c08c906044015f604051808303815f87803b158015610dac575f5ffd5b505af1158015610dbe573d5f5f3e3d5ffd5b5050505090565b336001600160a01b03821603610e1d5760405162461bcd60e51b815260206004820152601760248201527f43616e6e6f74207472616e7366657220746f2073656c660000000000000000006044820152606401610395565b600180546001600160a01b0319166001600160a01b038381169182179092555f8054604051929316917fed8889f560326eb138920d842192f0eb3dd22b4f139c87a2c57538e05bae12789190a350565b5f5f60208385031215610e7e575f5ffd5b823567ffffffffffffffff811115610e94575f5ffd5b8301601f81018513610ea4575f5ffd5b803567ffffffffffffffff811115610eba575f5ffd5b8560208260051b8401011115610ece575f5ffd5b6020919091019590945092505050565b5f5f83601f840112610eee575f5ffd5b50813567ffffffffffffffff811115610f05575f5ffd5b602083019150836020828501011115610f1c575f5ffd5b9250929050565b5f5f5f5f60608587031215610f36575f5ffd5b843563ffffffff81168114610f49575f5ffd5b9350602085013567ffffffffffffffff811115610f64575f5ffd5b610f7087828801610ede565b909450925050604085013567ffffffffffffffff811115610f8f575f5ffd5b850160c08188031215610fa0575f5ffd5b939692955090935050565b80356001600160a01b0381168114610fc1575f5ffd5b919050565b5f60208284031215610fd6575f5ffd5b610fdf82610fab565b9392505050565b5f5f5f60408486031215610ff8575f5ffd5b83359250602084013567ffffffffffffffff811115611015575f5ffd5b61102186828701610ede565b9497909650939450505050565b5f6020828403121561103e575f5ffd5b5035919050565b805f5b6002811015611067578151845260209384019390910190600101611048565b50505050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b6110a6818551611045565b5f60208501516110b96040840182611045565b5060c060808301526110ce60c083018561106d565b82810360a08401526110e0818561106d565b9695505050505050565b5f5f604083850312156110fb575f5ffd5b8235915061110b60208401610fab565b90509250929050565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52604160045260245ffd5b5f5f8335601e19843603018112611151575f5ffd5b83018035915067ffffffffffffffff82111561116b575f5ffd5b602001915036819003821315610f1c575f5ffd5b600181811c9082168061119357607f821691505b6020821081036111b157634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156104f957805f5260205f20601f840160051c810160208510156111dc5750805b601f840160051c820191505b818110156103fa575f81556001016111e8565b67ffffffffffffffff83111561121357611213611128565b61122783611221835461117f565b836111b7565b5f601f841160018114611258575f85156112415750838201355b5f19600387901b1c1916600186901b1783556103fa565b5f83815260208120601f198716915b828110156112875786850135825560209485019460019092019101611267565b50868210156112a3575f1960f88860031b161c19848701351681555b505060018560011b0183555050505050565b815f5b60028110156112d5578135838201556020909101906001016112b8565b5050604082015f5b60028110156112fd578135838201600201556020909101906001016112dd565b505061130c608083018361113c565b61131a8183600486016111fb565b505061132960a083018361113c565b6110678183600586016111fb565b5f5f8335601e1984360301811261134c575f5ffd5b830160208101925035905067ffffffffffffffff81111561136b575f5ffd5b803603821315610f1c575f5ffd5b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b6040818337604080820160408401375f6113be6080830183611337565b60c060808601526113d360c086018284611379565b9150506113e360a0840184611337565b85830360a08701526110e0838284611379565b63ffffffff85168152836020820152608060408201525f61141a608083018561106d565b828103606084015261142c81856113a1565b979650505050505050565b5f60208284031215611447575f5ffd5b5051919050565b63ffffffff84168152606060208201525f61146c606083018561106d565b82810360408401526110e081856113a156fea26469706673582212201fe097e8426334c314f7a950394f6b0caa0adc48dfbeca6c71d97598f0df174764736f6c634300081c0033"; static readonly abi: readonly [{ readonly type: "constructor"; readonly inputs: readonly [{ readonly name: "blocklockContract"; readonly type: "address"; readonly internalType: "address"; }]; readonly stateMutability: "nonpayable"; }, { readonly type: "receive"; readonly stateMutability: "payable"; }, { readonly type: "function"; readonly name: "acceptOwnership"; readonly inputs: readonly []; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; }, { readonly type: "function"; readonly name: "blocklock"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly name: ""; readonly type: "address"; readonly internalType: "contract IBlocklockSender"; }]; readonly stateMutability: "view"; }, { readonly type: "function"; readonly name: "createSubscriptionAndFundNative"; readonly inputs: readonly []; readonly outputs: readonly []; readonly stateMutability: "payable"; }, { readonly type: "function"; readonly name: "createTimelockRequestWithDirectFunding"; readonly inputs: readonly [{ readonly name: "callbackGasLimit"; readonly type: "uint32"; readonly internalType: "uint32"; }, { readonly name: "condition"; readonly type: "bytes"; readonly internalType: "bytes"; }, { readonly name: "encryptedData"; readonly type: "tuple"; readonly internalType: "struct TypesLib.Ciphertext"; readonly components: readonly [{ readonly name: "u"; readonly type: "tuple"; readonly internalType: "struct BLS.PointG2"; readonly components: readonly [{ readonly name: "x"; readonly type: "uint256[2]"; readonly internalType: "uint256[2]"; }, { readonly name: "y"; readonly type: "uint256[2]"; readonly internalType: "uint256[2]"; }]; }, { readonly name: "v"; readonly type: "bytes"; readonly internalType: "bytes"; }, { readonly name: "w"; readonly type: "bytes"; readonly internalType: "bytes"; }]; }]; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; readonly internalType: "uint256"; }, { readonly name: ""; readonly type: "uint256"; readonly internalType: "uint256"; }]; readonly stateMutability: "nonpayable"; }, { readonly type: "function"; readonly name: "createTimelockRequestWithSubscription"; readonly inputs: readonly [{ readonly name: "callbackGasLimit"; readonly type: "uint32"; readonly internalType: "uint32"; }, { readonly name: "condition"; readonly type: "bytes"; readonly internalType: "bytes"; }, { readonly name: "encryptedData"; readonly type: "tuple"; readonly internalType: "struct TypesLib.Ciphertext"; readonly components: readonly [{ readonly name: "u"; readonly type: "tuple"; readonly internalType: "struct BLS.PointG2"; readonly components: readonly [{ readonly name: "x"; readonly type: "uint256[2]"; readonly internalType: "uint256[2]"; }, { readonly name: "y"; readonly type: "uint256[2]"; readonly internalType: "uint256[2]"; }]; }, { readonly name: "v"; readonly type: "bytes"; readonly internalType: "bytes"; }, { readonly name: "w"; readonly type: "bytes"; readonly internalType: "bytes"; }]; }]; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; readonly internalType: "uint256"; }]; readonly stateMutability: "payable"; }, { readonly type: "function"; readonly name: "encryptedValue"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly name: "u"; readonly type: "tuple"; readonly internalType: "struct BLS.PointG2"; readonly components: readonly [{ readonly name: "x"; readonly type: "uint256[2]"; readonly internalType: "uint256[2]"; }, { readonly name: "y"; readonly type: "uint256[2]"; readonly internalType: "uint256[2]"; }]; }, { readonly name: "v"; readonly type: "bytes"; readonly internalType: "bytes"; }, { readonly name: "w"; readonly type: "bytes"; readonly internalType: "bytes"; }]; readonly stateMutability: "view"; }, { readonly type: "function"; readonly name: "fundContractNative"; readonly inputs: readonly []; readonly outputs: readonly []; readonly stateMutability: "payable"; }, { readonly type: "function"; readonly name: "getBalance"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; readonly internalType: "uint256"; }]; readonly stateMutability: "view"; }, { readonly type: "function"; readonly name: "owner"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly name: ""; readonly type: "address"; readonly internalType: "address"; }]; readonly stateMutability: "view"; }, { readonly type: "function"; readonly name: "plainTextValue"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; readonly internalType: "uint256"; }]; readonly stateMutability: "view"; }, { readonly type: "function"; readonly name: "receiveBlocklock"; readonly inputs: readonly [{ readonly name: "requestID"; readonly type: "uint256"; readonly internalType: "uint256"; }, { readonly name: "decryptionKey"; readonly type: "bytes"; readonly internalType: "bytes"; }]; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; }, { readonly type: "function"; readonly name: "requestId"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; readonly internalType: "uint256"; }]; readonly stateMutability: "view"; }, { readonly type: "function"; readonly name: "setBlocklock"; readonly inputs: readonly [{ readonly name: "_blocklock"; readonly type: "address"; readonly internalType: "address"; }]; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; }, { readonly type: "function"; readonly name: "setSubId"; readonly inputs: readonly [{ readonly name: "subId"; readonly type: "uint256"; readonly internalType: "uint256"; }]; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; }, { readonly type: "function"; readonly name: "subscriptionId"; readonly inputs: readonly []; readonly outputs: readonly [{ readonly name: ""; readonly type: "uint256"; readonly internalType: "uint256"; }]; readonly stateMutability: "view"; }, { readonly type: "function"; readonly name: "topUpSubscriptionNative"; readonly inputs: readonly []; readonly outputs: readonly []; readonly stateMutability: "payable"; }, { readonly type: "function"; readonly name: "transferOwnership"; readonly inputs: readonly [{ readonly name: "to"; readonly type: "address"; readonly internalType: "address"; }]; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; }, { readonly type: "function"; readonly name: "updateSubscription"; readonly inputs: readonly [{ readonly name: "consumers"; readonly type: "address[]"; readonly internalType: "address[]"; }]; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; }, { readonly type: "function"; readonly name: "withdrawNative"; readonly inputs: readonly [{ readonly name: "amount"; readonly type: "uint256"; readonly internalType: "uint256"; }, { readonly name: "recipient"; readonly type: "address"; readonly internalType: "address"; }]; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; }, { readonly type: "event"; readonly name: "Funded"; readonly inputs: readonly [{ readonly name: "sender"; readonly type: "address"; readonly indexed: true; readonly internalType: "address"; }, { readonly name: "amount"; readonly type: "uint256"; readonly indexed: false; readonly internalType: "uint256"; }]; readonly anonymous: false; }, { readonly type: "event"; readonly name: "NewSubscriptionId"; readonly inputs: readonly [{ readonly name: "subscriptionId"; readonly type: "uint256"; readonly indexed: true; readonly internalType: "uint256"; }]; readonly anonymous: false; }, { readonly type: "event"; readonly name: "OwnershipTransferRequested"; readonly inputs: readonly [{ readonly name: "from"; readonly type: "address"; readonly indexed: true; readonly internalType: "address"; }, { readonly name: "to"; readonly type: "address"; readonly indexed: true; readonly internalType: "address"; }]; readonly anonymous: false; }, { readonly type: "event"; readonly name: "OwnershipTransferred"; readonly inputs: readonly [{ readonly name: "from"; readonly type: "address"; readonly indexed: true; readonly internalType: "address"; }, { readonly name: "to"; readonly type: "address"; readonly indexed: true; readonly internalType: "address"; }]; readonly anonymous: false; }, { readonly type: "event"; readonly name: "Received"; readonly inputs: readonly [{ readonly name: ""; readonly type: "address"; readonly indexed: false; readonly internalType: "address"; }, { readonly name: ""; readonly type: "uint256"; readonly indexed: false; readonly internalType: "uint256"; }]; readonly anonymous: false; }, { readonly type: "event"; readonly name: "Withdrawn"; readonly inputs: readonly [{ readonly name: "recipient"; readonly type: "address"; readonly indexed: true; readonly internalType: "address"; }, { readonly name: "amount"; readonly type: "uint256"; readonly indexed: false; readonly internalType: "uint256"; }]; readonly anonymous: false; }]; static createInterface(): MockBlocklockRevertingReceiverInterface; static connect(address: string, runner?: ContractRunner | null): MockBlocklockRevertingReceiver; } export {};