diff --git a/contracts/artifacts/Blobstream0.json b/contracts/artifacts/Blobstream0.json index 95b0231..77a8d64 100644 --- a/contracts/artifacts/Blobstream0.json +++ b/contracts/artifacts/Blobstream0.json @@ -247,8 +247,8 @@ ], "bytecode": { "linkReferences": {}, - "object": "0x60a060405234801561001057600080fd5b50604051610f08380380610f0883398101604081905261002f91610068565b6001600160a01b0392909216608052600255600180546001600160401b0319166001600160401b039092169190911781556000556100c3565b60008060006060848603121561007d57600080fd5b83516001600160a01b038116811461009457600080fd5b6020850151604086015191945092506001600160401b03811681146100b857600080fd5b809150509250925092565b608051610e246100e46000396000818160af01526102840152610e246000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c80638a9fbdec1161005b5780638a9fbdec14610100578063ce0bb7e414610115578063e405bbc31461011e578063ef3f7dd51461014b57600080fd5b80631f3302a9146100825780632b7ac3f3146100aa5780636c4f6ba9146100e9575b600080fd5b610095610090366004610a97565b610172565b60405190151581526020015b60405180910390f35b6100d17f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016100a1565b6100f260025481565b6040519081526020016100a1565b61011361010e366004610c02565b6101df565b005b6100f260005481565b6001546101329067ffffffffffffffff1681565b60405167ffffffffffffffff90911681526020016100a1565b6100f27f54c5a4b5dcef9cc6febc08d59d9892b0b36be5fd15ef365c7a9c126a8864e49481565b600083158061018357506000548410155b15610190575060006101d8565b60008481526003602090815260408083205481518751818501529287015183830152815180840383018152606090930190915291906101d290839086906103d2565b50925050505b9392505050565b600154602084015167ffffffffffffffff9182169116116102135760405163145ce5ff60e11b815260040160405180910390fd5b600254835114610236576040516352c6046360e01b815260040160405180910390fd5b60408051845160208083019190915285015167ffffffffffffffff168183015290840151606080830191909152840151608082015260009060a00160405160208183030381529060405290507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ab750e7584847f54c5a4b5dcef9cc6febc08d59d9892b0b36be5fd15ef365c7a9c126a8864e49460001b6002866040516102e79190610ce4565b602060405180830381855afa158015610304573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052508101906103279190610cf0565b6040518563ffffffff1660e01b81526004016103469493929190610d09565b60006040518083038186803b15801561035e57600080fd5b505afa158015610372573d6000803e3d6000fd5b505050506020848101516001805467ffffffffffffffff191667ffffffffffffffff9092169190911790556040808601516002556060860151600080548152600390935290822055805490806103c783610d5f565b919050555050505050565b60008060018460400151116103fa57835151156103f557506000905060016104cb565b610420565b61040c846020015185604001516104d3565b8451511461042057506000905060016104cb565b836040015184602001511061043b57506000905060026104cb565b60006104468461056b565b85515190915060000361047957846040015160010361046c5785149150600090506104cb565b60008092509250506104cb565b60008061049487602001518860400151858a600001516105e0565b909250905060008160058111156104ad576104ad610d78565b146104c0576000945092506104cb915050565b508614925060009150505b935093915050565b6000600182116104e557506000610565565b6104ee8261076a565b6104fa90610100610d8e565b90506000610509600183610d8e565b6001901b905060018161051c9190610d8e565b84116105285750610565565b8060010361053a576001915050610565565b6105566105478286610d8e565b6105518386610d8e565b6104d3565b610561906001610da1565b9150505b92915050565b60006002600060f81b83604051602001610586929190610db4565b60408051601f19818403018152908290526105a091610ce4565b602060405180830381855afa1580156105bd573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052508101906105659190610cf0565b600080846000036105f657508290506003610761565b8460010361061b5782511561061057508290506004610761565b508290506000610761565b825160000361062f57508290506005610761565b600061063a86610797565b90506000610657856000600188516106529190610d8e565b6107d8565b90506000828910156106db5760006106718a858a866105e0565b92509050600082600581111561068957610689610d78565b1461069c57508694509250610761915050565b6106cc818860018a516106af9190610d8e565b815181106106bf576106bf610dd8565b6020026020010151610963565b60009550955050505050610761565b60006106fb6106ea858c610d8e565b6106f4868c610d8e565b8a866105e0565b92509050600082600581111561071357610713610d78565b1461072657508694509250610761915050565b61075687600189516107389190610d8e565b8151811061074857610748610dd8565b602002602001015182610963565b600095509550505050505b94509492505050565b60005b81816001901b101561078b57610784600182610da1565b905061076d565b61056581610100610d8e565b600060018210156107a757600080fd5b60006107b2836109e1565b905060006107c1600183610d8e565b6001901b90508381036101d85760011c9392505050565b6060818311156108425760405162461bcd60e51b815260206004820152602a60248201527f496e76616c69642072616e67653a205f626567696e2069732067726561746572604482015269081d1a185b8817d95b9960b21b60648201526084015b60405180910390fd5b83518311806108515750835182115b156108b65760405162461bcd60e51b815260206004820152602f60248201527f496e76616c69642072616e67653a205f626567696e206f72205f656e6420617260448201526e65206f7574206f6620626f756e647360881b6064820152608401610839565b60006108c28484610d8e565b67ffffffffffffffff8111156108da576108da610a04565b604051908082528060200260200182016040528015610903578160200160208202803683370190505b509050835b8381101561095a5785818151811061092257610922610dd8565b60200260200101518286836109379190610d8e565b8151811061094757610947610dd8565b6020908102919091010152600101610908565b50949350505050565b604051600160f81b6020820152602181018390526041810182905260009060029060610160408051601f19818403018152908290526109a191610ce4565b602060405180830381855afa1580156109be573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052508101906101d89190610cf0565b6000805b821561056557806109f581610d5f565b915050600183901c92506109e5565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff81118282101715610a3d57610a3d610a04565b60405290565b6040516060810167ffffffffffffffff81118282101715610a3d57610a3d610a04565b604051601f8201601f1916810167ffffffffffffffff81118282101715610a8f57610a8f610a04565b604052919050565b60008060008385036080811215610aad57600080fd5b8435935060206040601f1983011215610ac557600080fd5b610acd610a1a565b86820135815260408701358282015293506060860135915067ffffffffffffffff80831115610afb57600080fd5b9186019160608389031215610b0f57600080fd5b610b17610a43565b833582811115610b2657600080fd5b8401601f81018a13610b3757600080fd5b803583811115610b4957610b49610a04565b8060051b9350610b5a858501610a66565b818152938201850193858101908c861115610b7457600080fd5b928601925b85841015610b9257833582529286019290860190610b79565b80855250505050828401358382015260408401356040820152809450505050509250925092565b60008083601f840112610bcb57600080fd5b50813567ffffffffffffffff811115610be357600080fd5b602083019150836020828501011115610bfb57600080fd5b9250929050565b600080600083850360a0811215610c1857600080fd5b6080811215610c2657600080fd5b506040516080810167ffffffffffffffff8282108183111715610c4b57610c4b610a04565b8160405286358352602087013591508082168214610c6857600080fd5b81602084015260408701356040840152606087013560608401528295506080870135925080831115610c9957600080fd5b5050610ca786828701610bb9565b9497909650939450505050565b6000815160005b81811015610cd55760208185018101518683015201610cbb565b50600093019283525090919050565b60006101d88284610cb4565b600060208284031215610d0257600080fd5b5051919050565b606081528360608201528385608083013760006080858301015260006080601f19601f870116830101905083602083015282604083015295945050505050565b634e487b7160e01b600052601160045260246000fd5b600060018201610d7157610d71610d49565b5060010190565b634e487b7160e01b600052602160045260246000fd5b8181038181111561056557610565610d49565b8082018082111561056557610565610d49565b6001600160f81b0319831681526000610dd06001830184610cb4565b949350505050565b634e487b7160e01b600052603260045260246000fdfea2646970667358221220541302021882ada28fdfffe69f2b7503bd1dc0bfeff29268fa2c4068fbeb5b4864736f6c63430008170033", - "sourceMap": "1051:4495:43:-:0;;;3456:257;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;3582:20:43;;;;;;3612:15;:30;3652:12;:29;;-1:-1:-1;;;;;;3652:29:43;-1:-1:-1;;;;;3652:29:43;;;;;;;;;-1:-1:-1;3692:14:43;1051:4495;;14:551:48;128:6;136;144;197:2;185:9;176:7;172:23;168:32;165:52;;;213:1;210;203:12;165:52;239:16;;-1:-1:-1;;;;;284:31:48;;274:42;;264:70;;330:1;327;320:12;264:70;398:2;383:18;;377:25;447:2;432:18;;426:25;353:5;;-1:-1:-1;377:25:48;-1:-1:-1;;;;;;482:32:48;;470:45;;460:73;;529:1;526;519:12;460:73;552:7;542:17;;;14:551;;;;;:::o;:::-;1051:4495:43;;;;;;;;;;;;;;;;;" + "object": "0x60a060405234801561001057600080fd5b50604051610f08380380610f0883398101604081905261002f91610068565b6001600160a01b0392909216608052600255600180546001600160401b0319166001600160401b039092169190911781556000556100c3565b60008060006060848603121561007d57600080fd5b83516001600160a01b038116811461009457600080fd5b6020850151604086015191945092506001600160401b03811681146100b857600080fd5b809150509250925092565b608051610e246100e46000396000818160af01526102840152610e246000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c80638a9fbdec1161005b5780638a9fbdec14610100578063ce0bb7e414610115578063e405bbc31461011e578063ef3f7dd51461014b57600080fd5b80631f3302a9146100825780632b7ac3f3146100aa5780636c4f6ba9146100e9575b600080fd5b610095610090366004610a97565b610172565b60405190151581526020015b60405180910390f35b6100d17f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016100a1565b6100f260025481565b6040519081526020016100a1565b61011361010e366004610c02565b6101df565b005b6100f260005481565b6001546101329067ffffffffffffffff1681565b60405167ffffffffffffffff90911681526020016100a1565b6100f27f54c5a4b5dcef9cc6febc08d59d9892b0b36be5fd15ef365c7a9c126a8864e49481565b600083158061018357506000548410155b15610190575060006101d8565b60008481526003602090815260408083205481518751818501529287015183830152815180840383018152606090930190915291906101d290839086906103d2565b50925050505b9392505050565b600154602084015167ffffffffffffffff9182169116116102135760405163145ce5ff60e11b815260040160405180910390fd5b600254835114610236576040516352c6046360e01b815260040160405180910390fd5b60408051845160208083019190915285015167ffffffffffffffff168183015290840151606080830191909152840151608082015260009060a00160405160208183030381529060405290507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ab750e7584847f54c5a4b5dcef9cc6febc08d59d9892b0b36be5fd15ef365c7a9c126a8864e49460001b6002866040516102e79190610ce4565b602060405180830381855afa158015610304573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052508101906103279190610cf0565b6040518563ffffffff1660e01b81526004016103469493929190610d09565b60006040518083038186803b15801561035e57600080fd5b505afa158015610372573d6000803e3d6000fd5b505050506020848101516001805467ffffffffffffffff191667ffffffffffffffff9092169190911790556040808601516002556060860151600080548152600390935290822055805490806103c783610d5f565b919050555050505050565b60008060018460400151116103fa57835151156103f557506000905060016104cb565b610420565b61040c846020015185604001516104d3565b8451511461042057506000905060016104cb565b836040015184602001511061043b57506000905060026104cb565b60006104468461056b565b85515190915060000361047957846040015160010361046c5785149150600090506104cb565b60008092509250506104cb565b60008061049487602001518860400151858a600001516105e0565b909250905060008160058111156104ad576104ad610d78565b146104c0576000945092506104cb915050565b508614925060009150505b935093915050565b6000600182116104e557506000610565565b6104ee8261076a565b6104fa90610100610d8e565b90506000610509600183610d8e565b6001901b905060018161051c9190610d8e565b84116105285750610565565b8060010361053a576001915050610565565b6105566105478286610d8e565b6105518386610d8e565b6104d3565b610561906001610da1565b9150505b92915050565b60006002600060f81b83604051602001610586929190610db4565b60408051601f19818403018152908290526105a091610ce4565b602060405180830381855afa1580156105bd573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052508101906105659190610cf0565b600080846000036105f657508290506003610761565b8460010361061b5782511561061057508290506004610761565b508290506000610761565b825160000361062f57508290506005610761565b600061063a86610797565b90506000610657856000600188516106529190610d8e565b6107d8565b90506000828910156106db5760006106718a858a866105e0565b92509050600082600581111561068957610689610d78565b1461069c57508694509250610761915050565b6106cc818860018a516106af9190610d8e565b815181106106bf576106bf610dd8565b6020026020010151610963565b60009550955050505050610761565b60006106fb6106ea858c610d8e565b6106f4868c610d8e565b8a866105e0565b92509050600082600581111561071357610713610d78565b1461072657508694509250610761915050565b61075687600189516107389190610d8e565b8151811061074857610748610dd8565b602002602001015182610963565b600095509550505050505b94509492505050565b60005b81816001901b101561078b57610784600182610da1565b905061076d565b61056581610100610d8e565b600060018210156107a757600080fd5b60006107b2836109e1565b905060006107c1600183610d8e565b6001901b90508381036101d85760011c9392505050565b6060818311156108425760405162461bcd60e51b815260206004820152602a60248201527f496e76616c69642072616e67653a205f626567696e2069732067726561746572604482015269081d1a185b8817d95b9960b21b60648201526084015b60405180910390fd5b83518311806108515750835182115b156108b65760405162461bcd60e51b815260206004820152602f60248201527f496e76616c69642072616e67653a205f626567696e206f72205f656e6420617260448201526e65206f7574206f6620626f756e647360881b6064820152608401610839565b60006108c28484610d8e565b67ffffffffffffffff8111156108da576108da610a04565b604051908082528060200260200182016040528015610903578160200160208202803683370190505b509050835b8381101561095a5785818151811061092257610922610dd8565b60200260200101518286836109379190610d8e565b8151811061094757610947610dd8565b6020908102919091010152600101610908565b50949350505050565b604051600160f81b6020820152602181018390526041810182905260009060029060610160408051601f19818403018152908290526109a191610ce4565b602060405180830381855afa1580156109be573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052508101906101d89190610cf0565b6000805b821561056557806109f581610d5f565b915050600183901c92506109e5565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff81118282101715610a3d57610a3d610a04565b60405290565b6040516060810167ffffffffffffffff81118282101715610a3d57610a3d610a04565b604051601f8201601f1916810167ffffffffffffffff81118282101715610a8f57610a8f610a04565b604052919050565b60008060008385036080811215610aad57600080fd5b8435935060206040601f1983011215610ac557600080fd5b610acd610a1a565b86820135815260408701358282015293506060860135915067ffffffffffffffff80831115610afb57600080fd5b9186019160608389031215610b0f57600080fd5b610b17610a43565b833582811115610b2657600080fd5b8401601f81018a13610b3757600080fd5b803583811115610b4957610b49610a04565b8060051b9350610b5a858501610a66565b818152938201850193858101908c861115610b7457600080fd5b928601925b85841015610b9257833582529286019290860190610b79565b80855250505050828401358382015260408401356040820152809450505050509250925092565b60008083601f840112610bcb57600080fd5b50813567ffffffffffffffff811115610be357600080fd5b602083019150836020828501011115610bfb57600080fd5b9250929050565b600080600083850360a0811215610c1857600080fd5b6080811215610c2657600080fd5b506040516080810167ffffffffffffffff8282108183111715610c4b57610c4b610a04565b8160405286358352602087013591508082168214610c6857600080fd5b81602084015260408701356040840152606087013560608401528295506080870135925080831115610c9957600080fd5b5050610ca786828701610bb9565b9497909650939450505050565b6000815160005b81811015610cd55760208185018101518683015201610cbb565b50600093019283525090919050565b60006101d88284610cb4565b600060208284031215610d0257600080fd5b5051919050565b606081528360608201528385608083013760006080858301015260006080601f19601f870116830101905083602083015282604083015295945050505050565b634e487b7160e01b600052601160045260246000fd5b600060018201610d7157610d71610d49565b5060010190565b634e487b7160e01b600052602160045260246000fd5b8181038181111561056557610565610d49565b8082018082111561056557610565610d49565b6001600160f81b0319831681526000610dd06001830184610cb4565b949350505050565b634e487b7160e01b600052603260045260246000fdfea2646970667358221220ebd531f2be645bf7a9c7b871daedca279aec3743fbf5b344a9c91fd66cb600d864736f6c63430008170033", + "sourceMap": "1051:4370:43:-:0;;;3432:227;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;3528:20:43;;;;;;3558:15;:30;3598:12;:29;;-1:-1:-1;;;;;;3598:29:43;-1:-1:-1;;;;;3598:29:43;;;;;;;;;-1:-1:-1;3638:14:43;1051:4370;;14:551:48;128:6;136;144;197:2;185:9;176:7;172:23;168:32;165:52;;;213:1;210;203:12;165:52;239:16;;-1:-1:-1;;;;;284:31:48;;274:42;;264:70;;330:1;327;320:12;264:70;398:2;383:18;;377:25;447:2;432:18;;426:25;353:5;;-1:-1:-1;377:25:48;-1:-1:-1;;;;;;482:32:48;;470:45;;460:73;;529:1;526;519:12;460:73;552:7;542:17;;;14:551;;;;;:::o;:::-;1051:4370:43;;;;;;;;;;;;;;;;;" }, "deployedBytecode": { "immutableReferences": { @@ -264,8 +264,8 @@ ] }, "linkReferences": {}, - "object": "0x608060405234801561001057600080fd5b506004361061007d5760003560e01c80638a9fbdec1161005b5780638a9fbdec14610100578063ce0bb7e414610115578063e405bbc31461011e578063ef3f7dd51461014b57600080fd5b80631f3302a9146100825780632b7ac3f3146100aa5780636c4f6ba9146100e9575b600080fd5b610095610090366004610a97565b610172565b60405190151581526020015b60405180910390f35b6100d17f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016100a1565b6100f260025481565b6040519081526020016100a1565b61011361010e366004610c02565b6101df565b005b6100f260005481565b6001546101329067ffffffffffffffff1681565b60405167ffffffffffffffff90911681526020016100a1565b6100f27f54c5a4b5dcef9cc6febc08d59d9892b0b36be5fd15ef365c7a9c126a8864e49481565b600083158061018357506000548410155b15610190575060006101d8565b60008481526003602090815260408083205481518751818501529287015183830152815180840383018152606090930190915291906101d290839086906103d2565b50925050505b9392505050565b600154602084015167ffffffffffffffff9182169116116102135760405163145ce5ff60e11b815260040160405180910390fd5b600254835114610236576040516352c6046360e01b815260040160405180910390fd5b60408051845160208083019190915285015167ffffffffffffffff168183015290840151606080830191909152840151608082015260009060a00160405160208183030381529060405290507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ab750e7584847f54c5a4b5dcef9cc6febc08d59d9892b0b36be5fd15ef365c7a9c126a8864e49460001b6002866040516102e79190610ce4565b602060405180830381855afa158015610304573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052508101906103279190610cf0565b6040518563ffffffff1660e01b81526004016103469493929190610d09565b60006040518083038186803b15801561035e57600080fd5b505afa158015610372573d6000803e3d6000fd5b505050506020848101516001805467ffffffffffffffff191667ffffffffffffffff9092169190911790556040808601516002556060860151600080548152600390935290822055805490806103c783610d5f565b919050555050505050565b60008060018460400151116103fa57835151156103f557506000905060016104cb565b610420565b61040c846020015185604001516104d3565b8451511461042057506000905060016104cb565b836040015184602001511061043b57506000905060026104cb565b60006104468461056b565b85515190915060000361047957846040015160010361046c5785149150600090506104cb565b60008092509250506104cb565b60008061049487602001518860400151858a600001516105e0565b909250905060008160058111156104ad576104ad610d78565b146104c0576000945092506104cb915050565b508614925060009150505b935093915050565b6000600182116104e557506000610565565b6104ee8261076a565b6104fa90610100610d8e565b90506000610509600183610d8e565b6001901b905060018161051c9190610d8e565b84116105285750610565565b8060010361053a576001915050610565565b6105566105478286610d8e565b6105518386610d8e565b6104d3565b610561906001610da1565b9150505b92915050565b60006002600060f81b83604051602001610586929190610db4565b60408051601f19818403018152908290526105a091610ce4565b602060405180830381855afa1580156105bd573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052508101906105659190610cf0565b600080846000036105f657508290506003610761565b8460010361061b5782511561061057508290506004610761565b508290506000610761565b825160000361062f57508290506005610761565b600061063a86610797565b90506000610657856000600188516106529190610d8e565b6107d8565b90506000828910156106db5760006106718a858a866105e0565b92509050600082600581111561068957610689610d78565b1461069c57508694509250610761915050565b6106cc818860018a516106af9190610d8e565b815181106106bf576106bf610dd8565b6020026020010151610963565b60009550955050505050610761565b60006106fb6106ea858c610d8e565b6106f4868c610d8e565b8a866105e0565b92509050600082600581111561071357610713610d78565b1461072657508694509250610761915050565b61075687600189516107389190610d8e565b8151811061074857610748610dd8565b602002602001015182610963565b600095509550505050505b94509492505050565b60005b81816001901b101561078b57610784600182610da1565b905061076d565b61056581610100610d8e565b600060018210156107a757600080fd5b60006107b2836109e1565b905060006107c1600183610d8e565b6001901b90508381036101d85760011c9392505050565b6060818311156108425760405162461bcd60e51b815260206004820152602a60248201527f496e76616c69642072616e67653a205f626567696e2069732067726561746572604482015269081d1a185b8817d95b9960b21b60648201526084015b60405180910390fd5b83518311806108515750835182115b156108b65760405162461bcd60e51b815260206004820152602f60248201527f496e76616c69642072616e67653a205f626567696e206f72205f656e6420617260448201526e65206f7574206f6620626f756e647360881b6064820152608401610839565b60006108c28484610d8e565b67ffffffffffffffff8111156108da576108da610a04565b604051908082528060200260200182016040528015610903578160200160208202803683370190505b509050835b8381101561095a5785818151811061092257610922610dd8565b60200260200101518286836109379190610d8e565b8151811061094757610947610dd8565b6020908102919091010152600101610908565b50949350505050565b604051600160f81b6020820152602181018390526041810182905260009060029060610160408051601f19818403018152908290526109a191610ce4565b602060405180830381855afa1580156109be573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052508101906101d89190610cf0565b6000805b821561056557806109f581610d5f565b915050600183901c92506109e5565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff81118282101715610a3d57610a3d610a04565b60405290565b6040516060810167ffffffffffffffff81118282101715610a3d57610a3d610a04565b604051601f8201601f1916810167ffffffffffffffff81118282101715610a8f57610a8f610a04565b604052919050565b60008060008385036080811215610aad57600080fd5b8435935060206040601f1983011215610ac557600080fd5b610acd610a1a565b86820135815260408701358282015293506060860135915067ffffffffffffffff80831115610afb57600080fd5b9186019160608389031215610b0f57600080fd5b610b17610a43565b833582811115610b2657600080fd5b8401601f81018a13610b3757600080fd5b803583811115610b4957610b49610a04565b8060051b9350610b5a858501610a66565b818152938201850193858101908c861115610b7457600080fd5b928601925b85841015610b9257833582529286019290860190610b79565b80855250505050828401358382015260408401356040820152809450505050509250925092565b60008083601f840112610bcb57600080fd5b50813567ffffffffffffffff811115610be357600080fd5b602083019150836020828501011115610bfb57600080fd5b9250929050565b600080600083850360a0811215610c1857600080fd5b6080811215610c2657600080fd5b506040516080810167ffffffffffffffff8282108183111715610c4b57610c4b610a04565b8160405286358352602087013591508082168214610c6857600080fd5b81602084015260408701356040840152606087013560608401528295506080870135925080831115610c9957600080fd5b5050610ca786828701610bb9565b9497909650939450505050565b6000815160005b81811015610cd55760208185018101518683015201610cbb565b50600093019283525090919050565b60006101d88284610cb4565b600060208284031215610d0257600080fd5b5051919050565b606081528360608201528385608083013760006080858301015260006080601f19601f870116830101905083602083015282604083015295945050505050565b634e487b7160e01b600052601160045260246000fd5b600060018201610d7157610d71610d49565b5060010190565b634e487b7160e01b600052602160045260246000fd5b8181038181111561056557610565610d49565b8082018082111561056557610565610d49565b6001600160f81b0319831681526000610dd06001830184610cb4565b949350505050565b634e487b7160e01b600052603260045260246000fdfea2646970667358221220541302021882ada28fdfffe69f2b7503bd1dc0bfeff29268fa2c4068fbeb5b4864736f6c63430008170033", - "sourceMap": "1051:4495:43:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5053:491;;;;;;:::i;:::-;;:::i;:::-;;;2830:14:48;;2823:22;2805:41;;2793:2;2778:18;5053:491:43;;;;;;;;2286:43;;;;;;;;-1:-1:-1;;;;;3048:32:48;;;3030:51;;3018:2;3003:18;2286:43:43;2857:230:48;3202:30:43;;;;;;;;;3238:25:48;;;3226:2;3211:18;3202:30:43;3092:177:48;3789:860:43;;;;;;:::i;:::-;;:::i;:::-;;2793:25;;;;;;2977:26;;;;;;;;;;;;5091:18:48;5079:31;;;5061:50;;5049:2;5034:18;2977:26:43;4917:200:48;2730:56:43;;773:66:44;2730:56:43;;5053:491;5216:4;5236:16;;;:45;;;5271:10;;5256:11;:25;;5236:45;5232:88;;;-1:-1:-1;5304:5:43;5297:12;;5232:88;5330:12;5345:24;;;:11;:24;;;;;;;;;5479:18;;5342:13:48;;5479:18:43;;;5324:32:48;5400:17;;;5394:24;5372:20;;;5365:54;5479:18:43;;;;;;;;;5297::48;;;;5479::43;;;5345:24;5330:12;5404:103;;5345:24;;5459:6;;5404:23;:103::i;:::-;-1:-1:-1;5380:127:43;-1:-1:-1;;;5053:491:43;;;;;;:::o;3789:860::-;3930:12;;3909:17;;;;3930:12;;;;3909:33;;;3905:92;;3965:21;;-1:-1:-1;;;3965:21:43;;;;;;;;;;;3905:92;4039:15;;4010:25;;:44;4006:108;;4077:26;;-1:-1:-1;;;4077:26:43;;;;;;;;;;;4006:108;4147:19;;;5663:13:48;;4147:19:43;;;;5645:32:48;;;;5725:17;;5719:24;5745:18;5715:49;5693:20;;;5686:79;5809:17;;;5803:24;5781:20;;;;5774:54;;;;5872:17;;5866:24;5844:20;;;5837:54;4124:20:43;;5617:19:48;;4147::43;;;;;;;;;;;;4124:42;;4176:8;-1:-1:-1;;;;;4176:15:43;;4192:5;;773:66:44;765:75;;4208:15:43;4215:7;4208:15;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4176:48;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;4364:17:43;;;;;4349:12;:32;;-1:-1:-1;;4349:32:43;;;;;;;;;;;4409:21;;;;;4391:15;:39;4602:18;;;;-1:-1:-1;4588:10:43;;4576:23;;:11;:23;;;;;;:44;4630:12;;;-1:-1:-1;4630:12:43;;;:::i;:::-;;;;;;3895:754;3789:860;;;:::o;1342:1444:6:-;1470:4;1476:10;1592:1;1573:5;:15;;;:20;1569:326;;1613:15;;:22;:27;1609:117;;-1:-1:-1;1668:5:6;;-1:-1:-1;1675:35:6;1660:51;;1609:117;1569:326;;;1772:45;1790:5;:9;;;1801:5;:15;;;1772:17;:45::i;:::-;1746:15;;:22;:71;1742:153;;-1:-1:-1;1841:5:6;;-1:-1:-1;1848:35:6;1833:51;;1742:153;1954:5;:15;;;1941:5;:9;;;:28;1937:98;;-1:-1:-1;1993:5:6;;-1:-1:-1;2000:23:6;1985:39;;1937:98;2131:14;2148:16;2159:4;2148:10;:16::i;:::-;2281:15;;:22;2131:33;;-1:-1:-1;2281:15:6;:27;2277:232;;2328:5;:15;;;2347:1;2328:20;2324:175;;2376:14;;;-1:-1:-1;2392:18:6;;-1:-1:-1;2368:43:6;;2324:175;2458:5;2465:18;2450:34;;;;;;;2324:175;2520:20;2542:16;2562:68;2578:5;:9;;;2589:5;:15;;;2606:6;2614:5;:15;;;2562;:68::i;:::-;2519:111;;-1:-1:-1;2519:111:6;-1:-1:-1;2654:18:6;2645:5;:27;;;;;;;;:::i;:::-;;2641:79;;2696:5;;-1:-1:-1;2703:5:6;-1:-1:-1;2688:21:6;;-1:-1:-1;;2688:21:6;2641:79;-1:-1:-1;2738:20:6;;;-1:-1:-1;2760:18:6;;-1:-1:-1;;1342:1444:6;;;;;;;:::o;936:1011:4:-;1009:18;1052:1;1039:9;:14;1035:125;;-1:-1:-1;1152:1:4;1145:8;;1035:125;1304:25;1319:9;1304:14;:25::i;:::-;1281:48;;245:3:2;1281:48:4;:::i;:::-;1268:61;-1:-1:-1;1394:28:4;1432:14;1445:1;1268:61;1432:14;:::i;:::-;1426:1;:21;;1394:54;;1567:1;1544:20;:24;;;;:::i;:::-;1537:3;:31;1533:412;;1580:17;;;1533:412;1711:20;1735:1;1711:25;1707:238;;1755:1;1748:8;;;;;1707:238;1859:79;1877:26;1883:20;1877:3;:26;:::i;:::-;1905:32;1917:20;1905:9;:32;:::i;:::-;1859:17;:79::i;:::-;1855:83;;:1;:83;:::i;:::-;1848:90;;;936:1011;;;;;:::o;868:140:7:-;921:14;952:53;340:4:2;976:21:7;;999:4;959:45;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;959:45:7;;;;;;;;;;952:53;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;2983:1463:6:-;3132:7;3141:10;3171:9;3184:1;3171:14;3167:103;;-1:-1:-1;3209:8:6;;-1:-1:-1;3219:39:6;3201:58;;3167:103;3283:9;3296:1;3283:14;3279:206;;3317:16;;:21;3313:111;;-1:-1:-1;3366:8:6;;-1:-1:-1;3376:32:6;3358:51;;3313:111;-1:-1:-1;3445:8:6;;-1:-1:-1;3455:18:6;3437:37;;3279:206;3498:9;:16;3518:1;3498:21;3494:109;;-1:-1:-1;3543:8:6;;-1:-1:-1;3553:38:6;3535:57;;3494:109;3612:15;3630:25;3645:9;3630:14;:25::i;:::-;3612:43;;3665:30;3698:41;3704:9;3715:1;3737;3718:9;:16;:20;;;;:::i;:::-;3698:5;:41::i;:::-;3665:74;;3749:16;3785:7;3779:3;:13;3775:347;;;3808:16;3858:54;3874:3;3879:7;3888:8;3898:13;3858:15;:54::i;:::-;3838:74;-1:-1:-1;3838:74:6;-1:-1:-1;3939:18:6;3930:5;:27;;;;;;;;:::i;:::-;;3926:90;;-1:-1:-1;3985:8:6;;-1:-1:-1;3995:5:6;-1:-1:-1;3977:24:6;;-1:-1:-1;;3977:24:6;3926:90;4037:53;4048:8;4058:9;4087:1;4068:9;:16;:20;;;;:::i;:::-;4058:31;;;;;;;;:::i;:::-;;;;;;;4037:10;:53::i;:::-;4092:18;4029:82;;;;;;;;;;3775:347;4131:17;4179:76;4195:13;4201:7;4195:3;:13;:::i;:::-;4210:19;4222:7;4210:9;:19;:::i;:::-;4231:8;4241:13;4179:15;:76::i;:::-;4158:97;-1:-1:-1;4158:97:6;-1:-1:-1;4278:18:6;4269:5;:27;;;;;;;;:::i;:::-;;4265:82;;-1:-1:-1;4320:8:6;;-1:-1:-1;4330:5:6;-1:-1:-1;4312:24:6;;-1:-1:-1;;4312:24:6;4265:82;4364:54;4375:9;4404:1;4385:9;:16;:20;;;;:::i;:::-;4375:31;;;;;;;;:::i;:::-;;;;;;;4408:9;4364:10;:54::i;:::-;4420:18;4356:83;;;;;;;;2983:1463;;;;;;;;:::o;315:362:4:-;372:19;556:72;584:9;569:11;564:1;:16;;563:30;556:72;;;605:16;620:1;605:16;;:::i;:::-;;;556:72;;;640:34;663:11;245:3:2;640:34:4;:::i;2318:492::-;2367:7;2680:1;2675;:6;;2667:15;;;;;;2689:14;2706:11;2715:1;2706:8;:11::i;:::-;2689:28;-1:-1:-1;2723:9:4;2741:10;2750:1;2689:28;2741:10;:::i;:::-;2735:1;:17;;2723:29;;2767:1;2762;:6;2758:36;;2786:1;2780:7;2806:1;2318:492;-1:-1:-1;;;2318:492:4:o;4913:544:6:-;5005:16;5046:4;5037:6;:13;5033:96;;;5066:52;;-1:-1:-1;;;5066:52:6;;8429:2:48;5066:52:6;;;8411:21:48;8468:2;8448:18;;;8441:30;8507:34;8487:18;;;8480:62;-1:-1:-1;;;8558:18:48;;;8551:40;8608:19;;5066:52:6;;;;;;;;5033:96;5151:5;:12;5142:6;:21;:44;;;;5174:5;:12;5167:4;:19;5142:44;5138:132;;;5202:57;;-1:-1:-1;;;5202:57:6;;8840:2:48;5202:57:6;;;8822:21:48;8879:2;8859:18;;;8852:30;8918:34;8898:18;;;8891:62;-1:-1:-1;;;8969:18:48;;;8962:45;9024:19;;5202:57:6;8638:411:48;5138:132:6;5279:20;5316:13;5323:6;5316:4;:13;:::i;:::-;5302:28;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5302:28:6;-1:-1:-1;5279:51:6;-1:-1:-1;5357:6:6;5340:91;5369:4;5365:1;:8;5340:91;;;5412:5;5418:1;5412:8;;;;;;;;:::i;:::-;;;;;;;5394:3;5402:6;5398:1;:10;;;;:::i;:::-;5394:15;;;;;;;;:::i;:::-;;;;;;;;;;:26;5375:3;;5340:91;;;-1:-1:-1;5447:3:6;4913:544;-1:-1:-1;;;;4913:544:6:o;415:157:7:-;516:52;;-1:-1:-1;;;516:52:7;;;9237:39:48;9292:11;;;9285:27;;;9328:12;;;9321:28;;;478:14:7;;509:60;;9365:12:48;;516:52:7;;;-1:-1:-1;;516:52:7;;;;;;;;;;509:60;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;2078:159:4:-;2121:7;;2160:56;2167:6;;2160:56;;2185:7;;;;:::i;:::-;;;;2208:1;2202:7;;;;;2160:56;;14:127:48;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:257;218:4;212:11;;;250:17;;297:18;282:34;;318:22;;;279:62;276:88;;;344:18;;:::i;:::-;380:4;373:24;146:257;:::o;408:251::-;480:2;474:9;522:2;510:15;;555:18;540:34;;576:22;;;537:62;534:88;;;602:18;;:::i;664:275::-;735:2;729:9;800:2;781:13;;-1:-1:-1;;777:27:48;765:40;;835:18;820:34;;856:22;;;817:62;814:88;;;882:18;;:::i;:::-;918:2;911:22;664:275;;-1:-1:-1;664:275:48:o;944:1716::-;1083:6;1091;1099;1143:9;1134:7;1130:23;1173:3;1169:2;1165:12;1162:32;;;1190:1;1187;1180:12;1162:32;1213:23;;;-1:-1:-1;1255:2:48;1291:4;-1:-1:-1;;1273:16:48;;1269:27;1266:47;;;1309:1;1306;1299:12;1266:47;1335:22;;:::i;:::-;1393:18;;;1380:32;1366:47;;1473:4;1458:20;;1445:34;1429:14;;;1422:58;1322:35;-1:-1:-1;1555:2:48;1540:18;;1527:32;;-1:-1:-1;1578:18:48;1608:14;;;1605:34;;;1635:1;1632;1625:12;1605:34;1658:22;;;;1714:2;1696:16;;;1692:25;1689:45;;;1730:1;1727;1720:12;1689:45;1758:22;;:::i;:::-;1818:2;1805:16;1846:2;1836:8;1833:16;1830:36;;;1862:1;1859;1852:12;1830:36;1885:17;;1933:4;1925:13;;1921:27;-1:-1:-1;1911:55:48;;1962:1;1959;1952:12;1911:55;1998:2;1985:16;2020:2;2016;2013:10;2010:36;;;2026:18;;:::i;:::-;2072:2;2069:1;2065:10;2055:20;;2095:28;2119:2;2115;2111:11;2095:28;:::i;:::-;2157:15;;;2227:11;;;2223:20;;;2188:12;;;;2255:19;;;2252:39;;;2287:1;2284;2277:12;2252:39;2311:11;;;;2331:142;2347:6;2342:3;2339:15;2331:142;;;2413:17;;2401:30;;2364:12;;;;2451;;;;2331:142;;;2498:5;2489:7;2482:22;;;;;2559:2;2555;2551:11;2538:25;2533:2;2524:7;2520:16;2513:51;2621:4;2617:2;2613:13;2600:27;2593:4;2584:7;2580:18;2573:55;2647:7;2637:17;;;;;;944:1716;;;;;:::o;3274:347::-;3325:8;3335:6;3389:3;3382:4;3374:6;3370:17;3366:27;3356:55;;3407:1;3404;3397:12;3356:55;-1:-1:-1;3430:20:48;;3473:18;3462:30;;3459:50;;;3505:1;3502;3495:12;3459:50;3542:4;3534:6;3530:17;3518:29;;3594:3;3587:4;3578:6;3570;3566:19;3562:30;3559:39;3556:59;;;3611:1;3608;3601:12;3556:59;3274:347;;;;;:::o;3626:1104::-;3739:6;3747;3755;3799:9;3790:7;3786:23;3829:3;3825:2;3821:12;3818:32;;;3846:1;3843;3836:12;3818:32;3870:4;3866:2;3862:13;3859:33;;;3888:1;3885;3878:12;3859:33;;3921:2;3915:9;3963:4;3955:6;3951:17;3987:18;4055:6;4043:10;4040:22;4035:2;4023:10;4020:18;4017:46;4014:72;;;4066:18;;:::i;:::-;4106:10;4102:2;4095:22;4154:9;4141:23;4133:6;4126:39;4215:2;4204:9;4200:18;4187:32;4174:45;;4259:2;4252:5;4248:14;4241:5;4238:25;4228:53;;4277:1;4274;4267:12;4228:53;4314:5;4309:2;4301:6;4297:15;4290:30;4381:2;4370:9;4366:18;4353:32;4348:2;4340:6;4336:15;4329:57;4447:2;4436:9;4432:18;4419:32;4414:2;4406:6;4402:15;4395:57;4471:6;4461:16;;4528:4;4517:9;4513:20;4500:34;4486:48;;4557:2;4549:6;4546:14;4543:34;;;4573:1;4570;4563:12;4543:34;;;4612:58;4662:7;4653:6;4642:9;4638:22;4612:58;:::i;:::-;3626:1104;;4689:8;;-1:-1:-1;4586:84:48;;-1:-1:-1;;;;3626:1104:48:o;5902:322::-;5943:3;5981:5;5975:12;6005:1;6015:128;6029:6;6026:1;6023:13;6015:128;;;6126:4;6111:13;;;6107:24;;6101:31;6088:11;;;6081:52;6044:12;6015:128;;;-1:-1:-1;6198:1:48;6162:16;;6187:13;;;-1:-1:-1;6162:16:48;;5902:322;-1:-1:-1;5902:322:48:o;6229:189::-;6358:3;6383:29;6408:3;6400:6;6383:29;:::i;6423:184::-;6493:6;6546:2;6534:9;6525:7;6521:23;6517:32;6514:52;;;6562:1;6559;6552:12;6514:52;-1:-1:-1;6585:16:48;;6423:184;-1:-1:-1;6423:184:48:o;6612:535::-;6825:2;6814:9;6807:21;6864:6;6859:2;6848:9;6844:18;6837:34;6922:6;6914;6908:3;6897:9;6893:19;6880:49;6979:1;6973:3;6964:6;6953:9;6949:22;6945:32;6938:43;6788:4;7049:3;7042:2;7038:7;7033:2;7025:6;7021:15;7017:29;7006:9;7002:45;6998:55;6990:63;;7091:6;7084:4;7073:9;7069:20;7062:36;7134:6;7129:2;7118:9;7114:18;7107:34;6612:535;;;;;;;:::o;7152:127::-;7213:10;7208:3;7204:20;7201:1;7194:31;7244:4;7241:1;7234:15;7268:4;7265:1;7258:15;7284:135;7323:3;7344:17;;;7341:43;;7364:18;;:::i;:::-;-1:-1:-1;7411:1:48;7400:13;;7284:135::o;7424:127::-;7485:10;7480:3;7476:20;7473:1;7466:31;7516:4;7513:1;7506:15;7540:4;7537:1;7530:15;7556:128;7623:9;;;7644:11;;;7641:37;;;7658:18;;:::i;7689:125::-;7754:9;;;7775:10;;;7772:36;;;7788:18;;:::i;7819:271::-;-1:-1:-1;;;;;;8004:26:48;;7992:39;;7974:3;8047:37;8081:1;8072:11;;8064:6;8047:37;:::i;:::-;8040:44;7819:271;-1:-1:-1;;;;7819:271:48:o;8095:127::-;8156:10;8151:3;8147:20;8144:1;8137:31;8187:4;8184:1;8177:15;8211:4;8208:1;8201:15" + "object": "0x608060405234801561001057600080fd5b506004361061007d5760003560e01c80638a9fbdec1161005b5780638a9fbdec14610100578063ce0bb7e414610115578063e405bbc31461011e578063ef3f7dd51461014b57600080fd5b80631f3302a9146100825780632b7ac3f3146100aa5780636c4f6ba9146100e9575b600080fd5b610095610090366004610a97565b610172565b60405190151581526020015b60405180910390f35b6100d17f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016100a1565b6100f260025481565b6040519081526020016100a1565b61011361010e366004610c02565b6101df565b005b6100f260005481565b6001546101329067ffffffffffffffff1681565b60405167ffffffffffffffff90911681526020016100a1565b6100f27f54c5a4b5dcef9cc6febc08d59d9892b0b36be5fd15ef365c7a9c126a8864e49481565b600083158061018357506000548410155b15610190575060006101d8565b60008481526003602090815260408083205481518751818501529287015183830152815180840383018152606090930190915291906101d290839086906103d2565b50925050505b9392505050565b600154602084015167ffffffffffffffff9182169116116102135760405163145ce5ff60e11b815260040160405180910390fd5b600254835114610236576040516352c6046360e01b815260040160405180910390fd5b60408051845160208083019190915285015167ffffffffffffffff168183015290840151606080830191909152840151608082015260009060a00160405160208183030381529060405290507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ab750e7584847f54c5a4b5dcef9cc6febc08d59d9892b0b36be5fd15ef365c7a9c126a8864e49460001b6002866040516102e79190610ce4565b602060405180830381855afa158015610304573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052508101906103279190610cf0565b6040518563ffffffff1660e01b81526004016103469493929190610d09565b60006040518083038186803b15801561035e57600080fd5b505afa158015610372573d6000803e3d6000fd5b505050506020848101516001805467ffffffffffffffff191667ffffffffffffffff9092169190911790556040808601516002556060860151600080548152600390935290822055805490806103c783610d5f565b919050555050505050565b60008060018460400151116103fa57835151156103f557506000905060016104cb565b610420565b61040c846020015185604001516104d3565b8451511461042057506000905060016104cb565b836040015184602001511061043b57506000905060026104cb565b60006104468461056b565b85515190915060000361047957846040015160010361046c5785149150600090506104cb565b60008092509250506104cb565b60008061049487602001518860400151858a600001516105e0565b909250905060008160058111156104ad576104ad610d78565b146104c0576000945092506104cb915050565b508614925060009150505b935093915050565b6000600182116104e557506000610565565b6104ee8261076a565b6104fa90610100610d8e565b90506000610509600183610d8e565b6001901b905060018161051c9190610d8e565b84116105285750610565565b8060010361053a576001915050610565565b6105566105478286610d8e565b6105518386610d8e565b6104d3565b610561906001610da1565b9150505b92915050565b60006002600060f81b83604051602001610586929190610db4565b60408051601f19818403018152908290526105a091610ce4565b602060405180830381855afa1580156105bd573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052508101906105659190610cf0565b600080846000036105f657508290506003610761565b8460010361061b5782511561061057508290506004610761565b508290506000610761565b825160000361062f57508290506005610761565b600061063a86610797565b90506000610657856000600188516106529190610d8e565b6107d8565b90506000828910156106db5760006106718a858a866105e0565b92509050600082600581111561068957610689610d78565b1461069c57508694509250610761915050565b6106cc818860018a516106af9190610d8e565b815181106106bf576106bf610dd8565b6020026020010151610963565b60009550955050505050610761565b60006106fb6106ea858c610d8e565b6106f4868c610d8e565b8a866105e0565b92509050600082600581111561071357610713610d78565b1461072657508694509250610761915050565b61075687600189516107389190610d8e565b8151811061074857610748610dd8565b602002602001015182610963565b600095509550505050505b94509492505050565b60005b81816001901b101561078b57610784600182610da1565b905061076d565b61056581610100610d8e565b600060018210156107a757600080fd5b60006107b2836109e1565b905060006107c1600183610d8e565b6001901b90508381036101d85760011c9392505050565b6060818311156108425760405162461bcd60e51b815260206004820152602a60248201527f496e76616c69642072616e67653a205f626567696e2069732067726561746572604482015269081d1a185b8817d95b9960b21b60648201526084015b60405180910390fd5b83518311806108515750835182115b156108b65760405162461bcd60e51b815260206004820152602f60248201527f496e76616c69642072616e67653a205f626567696e206f72205f656e6420617260448201526e65206f7574206f6620626f756e647360881b6064820152608401610839565b60006108c28484610d8e565b67ffffffffffffffff8111156108da576108da610a04565b604051908082528060200260200182016040528015610903578160200160208202803683370190505b509050835b8381101561095a5785818151811061092257610922610dd8565b60200260200101518286836109379190610d8e565b8151811061094757610947610dd8565b6020908102919091010152600101610908565b50949350505050565b604051600160f81b6020820152602181018390526041810182905260009060029060610160408051601f19818403018152908290526109a191610ce4565b602060405180830381855afa1580156109be573d6000803e3d6000fd5b5050506040513d601f19601f820116820180604052508101906101d89190610cf0565b6000805b821561056557806109f581610d5f565b915050600183901c92506109e5565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff81118282101715610a3d57610a3d610a04565b60405290565b6040516060810167ffffffffffffffff81118282101715610a3d57610a3d610a04565b604051601f8201601f1916810167ffffffffffffffff81118282101715610a8f57610a8f610a04565b604052919050565b60008060008385036080811215610aad57600080fd5b8435935060206040601f1983011215610ac557600080fd5b610acd610a1a565b86820135815260408701358282015293506060860135915067ffffffffffffffff80831115610afb57600080fd5b9186019160608389031215610b0f57600080fd5b610b17610a43565b833582811115610b2657600080fd5b8401601f81018a13610b3757600080fd5b803583811115610b4957610b49610a04565b8060051b9350610b5a858501610a66565b818152938201850193858101908c861115610b7457600080fd5b928601925b85841015610b9257833582529286019290860190610b79565b80855250505050828401358382015260408401356040820152809450505050509250925092565b60008083601f840112610bcb57600080fd5b50813567ffffffffffffffff811115610be357600080fd5b602083019150836020828501011115610bfb57600080fd5b9250929050565b600080600083850360a0811215610c1857600080fd5b6080811215610c2657600080fd5b506040516080810167ffffffffffffffff8282108183111715610c4b57610c4b610a04565b8160405286358352602087013591508082168214610c6857600080fd5b81602084015260408701356040840152606087013560608401528295506080870135925080831115610c9957600080fd5b5050610ca786828701610bb9565b9497909650939450505050565b6000815160005b81811015610cd55760208185018101518683015201610cbb565b50600093019283525090919050565b60006101d88284610cb4565b600060208284031215610d0257600080fd5b5051919050565b606081528360608201528385608083013760006080858301015260006080601f19601f870116830101905083602083015282604083015295945050505050565b634e487b7160e01b600052601160045260246000fd5b600060018201610d7157610d71610d49565b5060010190565b634e487b7160e01b600052602160045260246000fd5b8181038181111561056557610565610d49565b8082018082111561056557610565610d49565b6001600160f81b0319831681526000610dd06001830184610cb4565b949350505050565b634e487b7160e01b600052603260045260246000fdfea2646970667358221220ebd531f2be645bf7a9c7b871daedca279aec3743fbf5b344a9c91fd66cb600d864736f6c63430008170033", + "sourceMap": "1051:4370:43:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4977:442;;;;;;:::i;:::-;;:::i;:::-;;;2830:14:48;;2823:22;2805:41;;2793:2;2778:18;4977:442:43;;;;;;;;2262:43;;;;;;;;-1:-1:-1;;;;;3048:32:48;;;3030:51;;3018:2;3003:18;2262:43:43;2857:230:48;3178:30:43;;;;;;;;;3238:25:48;;;3226:2;3211:18;3178:30:43;3092:177:48;3735:838:43;;;;;;:::i;:::-;;:::i;:::-;;2769:25;;;;;;2953:26;;;;;;;;;;;;5091:18:48;5079:31;;;5061:50;;5049:2;5034:18;2953:26:43;4917:200:48;2706:56:43;;773:66:44;2706:56:43;;4977:442;5134:4;5158:16;;;:45;;;5193:10;;5178:11;:25;;5158:45;5154:88;;;-1:-1:-1;5226:5:43;5219:12;;5154:88;5252:12;5267:24;;;:11;:24;;;;;;;;;5363:18;;5342:13:48;;5363:18:43;;;5324:32:48;5400:17;;;5394:24;5372:20;;;5365:54;5363:18:43;;;;;;;;;5297::48;;;;5363::43;;;5267:24;5252:12;5325:57;;5267:24;;5355:6;;5325:23;:57::i;:::-;-1:-1:-1;5302:80:43;-1:-1:-1;;;4977:442:43;;;;;;:::o;3735:838::-;3854:12;;3833:17;;;;3854:12;;;;3833:33;;;3829:92;;3889:21;;-1:-1:-1;;;3889:21:43;;;;;;;;;;;3829:92;3963:15;;3934:25;;:44;3930:108;;4001:26;;-1:-1:-1;;;4001:26:43;;;;;;;;;;;3930:108;4071:19;;;5663:13:48;;4071:19:43;;;;5645:32:48;;;;5725:17;;5719:24;5745:18;5715:49;5693:20;;;5686:79;5809:17;;;5803:24;5781:20;;;;5774:54;;;;5872:17;;5866:24;5844:20;;;5837:54;4048:20:43;;5617:19:48;;4071::43;;;;;;;;;;;;4048:42;;4100:8;-1:-1:-1;;;;;4100:15:43;;4116:5;;773:66:44;765:75;;4132:15:43;4139:7;4132:15;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4100:48;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;4288:17:43;;;;;4273:12;:32;;-1:-1:-1;;4273:32:43;;;;;;;;;;;4333:21;;;;;4315:15;:39;4526:18;;;;-1:-1:-1;4512:10:43;;4500:23;;:11;:23;;;;;;:44;4554:12;;;-1:-1:-1;4554:12:43;;;:::i;:::-;;;;;;3819:754;3735:838;;;:::o;1342:1444:6:-;1470:4;1476:10;1592:1;1573:5;:15;;;:20;1569:326;;1613:15;;:22;:27;1609:117;;-1:-1:-1;1668:5:6;;-1:-1:-1;1675:35:6;1660:51;;1609:117;1569:326;;;1772:45;1790:5;:9;;;1801:5;:15;;;1772:17;:45::i;:::-;1746:15;;:22;:71;1742:153;;-1:-1:-1;1841:5:6;;-1:-1:-1;1848:35:6;1833:51;;1742:153;1954:5;:15;;;1941:5;:9;;;:28;1937:98;;-1:-1:-1;1993:5:6;;-1:-1:-1;2000:23:6;1985:39;;1937:98;2131:14;2148:16;2159:4;2148:10;:16::i;:::-;2281:15;;:22;2131:33;;-1:-1:-1;2281:15:6;:27;2277:232;;2328:5;:15;;;2347:1;2328:20;2324:175;;2376:14;;;-1:-1:-1;2392:18:6;;-1:-1:-1;2368:43:6;;2324:175;2458:5;2465:18;2450:34;;;;;;;2324:175;2520:20;2542:16;2562:68;2578:5;:9;;;2589:5;:15;;;2606:6;2614:5;:15;;;2562;:68::i;:::-;2519:111;;-1:-1:-1;2519:111:6;-1:-1:-1;2654:18:6;2645:5;:27;;;;;;;;:::i;:::-;;2641:79;;2696:5;;-1:-1:-1;2703:5:6;-1:-1:-1;2688:21:6;;-1:-1:-1;;2688:21:6;2641:79;-1:-1:-1;2738:20:6;;;-1:-1:-1;2760:18:6;;-1:-1:-1;;1342:1444:6;;;;;;;:::o;936:1011:4:-;1009:18;1052:1;1039:9;:14;1035:125;;-1:-1:-1;1152:1:4;1145:8;;1035:125;1304:25;1319:9;1304:14;:25::i;:::-;1281:48;;245:3:2;1281:48:4;:::i;:::-;1268:61;-1:-1:-1;1394:28:4;1432:14;1445:1;1268:61;1432:14;:::i;:::-;1426:1;:21;;1394:54;;1567:1;1544:20;:24;;;;:::i;:::-;1537:3;:31;1533:412;;1580:17;;;1533:412;1711:20;1735:1;1711:25;1707:238;;1755:1;1748:8;;;;;1707:238;1859:79;1877:26;1883:20;1877:3;:26;:::i;:::-;1905:32;1917:20;1905:9;:32;:::i;:::-;1859:17;:79::i;:::-;1855:83;;:1;:83;:::i;:::-;1848:90;;;936:1011;;;;;:::o;868:140:7:-;921:14;952:53;340:4:2;976:21:7;;999:4;959:45;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;959:45:7;;;;;;;;;;952:53;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;2983:1463:6:-;3132:7;3141:10;3171:9;3184:1;3171:14;3167:103;;-1:-1:-1;3209:8:6;;-1:-1:-1;3219:39:6;3201:58;;3167:103;3283:9;3296:1;3283:14;3279:206;;3317:16;;:21;3313:111;;-1:-1:-1;3366:8:6;;-1:-1:-1;3376:32:6;3358:51;;3313:111;-1:-1:-1;3445:8:6;;-1:-1:-1;3455:18:6;3437:37;;3279:206;3498:9;:16;3518:1;3498:21;3494:109;;-1:-1:-1;3543:8:6;;-1:-1:-1;3553:38:6;3535:57;;3494:109;3612:15;3630:25;3645:9;3630:14;:25::i;:::-;3612:43;;3665:30;3698:41;3704:9;3715:1;3737;3718:9;:16;:20;;;;:::i;:::-;3698:5;:41::i;:::-;3665:74;;3749:16;3785:7;3779:3;:13;3775:347;;;3808:16;3858:54;3874:3;3879:7;3888:8;3898:13;3858:15;:54::i;:::-;3838:74;-1:-1:-1;3838:74:6;-1:-1:-1;3939:18:6;3930:5;:27;;;;;;;;:::i;:::-;;3926:90;;-1:-1:-1;3985:8:6;;-1:-1:-1;3995:5:6;-1:-1:-1;3977:24:6;;-1:-1:-1;;3977:24:6;3926:90;4037:53;4048:8;4058:9;4087:1;4068:9;:16;:20;;;;:::i;:::-;4058:31;;;;;;;;:::i;:::-;;;;;;;4037:10;:53::i;:::-;4092:18;4029:82;;;;;;;;;;3775:347;4131:17;4179:76;4195:13;4201:7;4195:3;:13;:::i;:::-;4210:19;4222:7;4210:9;:19;:::i;:::-;4231:8;4241:13;4179:15;:76::i;:::-;4158:97;-1:-1:-1;4158:97:6;-1:-1:-1;4278:18:6;4269:5;:27;;;;;;;;:::i;:::-;;4265:82;;-1:-1:-1;4320:8:6;;-1:-1:-1;4330:5:6;-1:-1:-1;4312:24:6;;-1:-1:-1;;4312:24:6;4265:82;4364:54;4375:9;4404:1;4385:9;:16;:20;;;;:::i;:::-;4375:31;;;;;;;;:::i;:::-;;;;;;;4408:9;4364:10;:54::i;:::-;4420:18;4356:83;;;;;;;;2983:1463;;;;;;;;:::o;315:362:4:-;372:19;556:72;584:9;569:11;564:1;:16;;563:30;556:72;;;605:16;620:1;605:16;;:::i;:::-;;;556:72;;;640:34;663:11;245:3:2;640:34:4;:::i;2318:492::-;2367:7;2680:1;2675;:6;;2667:15;;;;;;2689:14;2706:11;2715:1;2706:8;:11::i;:::-;2689:28;-1:-1:-1;2723:9:4;2741:10;2750:1;2689:28;2741:10;:::i;:::-;2735:1;:17;;2723:29;;2767:1;2762;:6;2758:36;;2786:1;2780:7;2806:1;2318:492;-1:-1:-1;;;2318:492:4:o;4913:544:6:-;5005:16;5046:4;5037:6;:13;5033:96;;;5066:52;;-1:-1:-1;;;5066:52:6;;8429:2:48;5066:52:6;;;8411:21:48;8468:2;8448:18;;;8441:30;8507:34;8487:18;;;8480:62;-1:-1:-1;;;8558:18:48;;;8551:40;8608:19;;5066:52:6;;;;;;;;5033:96;5151:5;:12;5142:6;:21;:44;;;;5174:5;:12;5167:4;:19;5142:44;5138:132;;;5202:57;;-1:-1:-1;;;5202:57:6;;8840:2:48;5202:57:6;;;8822:21:48;8879:2;8859:18;;;8852:30;8918:34;8898:18;;;8891:62;-1:-1:-1;;;8969:18:48;;;8962:45;9024:19;;5202:57:6;8638:411:48;5138:132:6;5279:20;5316:13;5323:6;5316:4;:13;:::i;:::-;5302:28;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5302:28:6;-1:-1:-1;5279:51:6;-1:-1:-1;5357:6:6;5340:91;5369:4;5365:1;:8;5340:91;;;5412:5;5418:1;5412:8;;;;;;;;:::i;:::-;;;;;;;5394:3;5402:6;5398:1;:10;;;;:::i;:::-;5394:15;;;;;;;;:::i;:::-;;;;;;;;;;:26;5375:3;;5340:91;;;-1:-1:-1;5447:3:6;4913:544;-1:-1:-1;;;;4913:544:6:o;415:157:7:-;516:52;;-1:-1:-1;;;516:52:7;;;9237:39:48;9292:11;;;9285:27;;;9328:12;;;9321:28;;;478:14:7;;509:60;;9365:12:48;;516:52:7;;;-1:-1:-1;;516:52:7;;;;;;;;;;509:60;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;2078:159:4:-;2121:7;;2160:56;2167:6;;2160:56;;2185:7;;;;:::i;:::-;;;;2208:1;2202:7;;;;;2160:56;;14:127:48;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:257;218:4;212:11;;;250:17;;297:18;282:34;;318:22;;;279:62;276:88;;;344:18;;:::i;:::-;380:4;373:24;146:257;:::o;408:251::-;480:2;474:9;522:2;510:15;;555:18;540:34;;576:22;;;537:62;534:88;;;602:18;;:::i;664:275::-;735:2;729:9;800:2;781:13;;-1:-1:-1;;777:27:48;765:40;;835:18;820:34;;856:22;;;817:62;814:88;;;882:18;;:::i;:::-;918:2;911:22;664:275;;-1:-1:-1;664:275:48:o;944:1716::-;1083:6;1091;1099;1143:9;1134:7;1130:23;1173:3;1169:2;1165:12;1162:32;;;1190:1;1187;1180:12;1162:32;1213:23;;;-1:-1:-1;1255:2:48;1291:4;-1:-1:-1;;1273:16:48;;1269:27;1266:47;;;1309:1;1306;1299:12;1266:47;1335:22;;:::i;:::-;1393:18;;;1380:32;1366:47;;1473:4;1458:20;;1445:34;1429:14;;;1422:58;1322:35;-1:-1:-1;1555:2:48;1540:18;;1527:32;;-1:-1:-1;1578:18:48;1608:14;;;1605:34;;;1635:1;1632;1625:12;1605:34;1658:22;;;;1714:2;1696:16;;;1692:25;1689:45;;;1730:1;1727;1720:12;1689:45;1758:22;;:::i;:::-;1818:2;1805:16;1846:2;1836:8;1833:16;1830:36;;;1862:1;1859;1852:12;1830:36;1885:17;;1933:4;1925:13;;1921:27;-1:-1:-1;1911:55:48;;1962:1;1959;1952:12;1911:55;1998:2;1985:16;2020:2;2016;2013:10;2010:36;;;2026:18;;:::i;:::-;2072:2;2069:1;2065:10;2055:20;;2095:28;2119:2;2115;2111:11;2095:28;:::i;:::-;2157:15;;;2227:11;;;2223:20;;;2188:12;;;;2255:19;;;2252:39;;;2287:1;2284;2277:12;2252:39;2311:11;;;;2331:142;2347:6;2342:3;2339:15;2331:142;;;2413:17;;2401:30;;2364:12;;;;2451;;;;2331:142;;;2498:5;2489:7;2482:22;;;;;2559:2;2555;2551:11;2538:25;2533:2;2524:7;2520:16;2513:51;2621:4;2617:2;2613:13;2600:27;2593:4;2584:7;2580:18;2573:55;2647:7;2637:17;;;;;;944:1716;;;;;:::o;3274:347::-;3325:8;3335:6;3389:3;3382:4;3374:6;3370:17;3366:27;3356:55;;3407:1;3404;3397:12;3356:55;-1:-1:-1;3430:20:48;;3473:18;3462:30;;3459:50;;;3505:1;3502;3495:12;3459:50;3542:4;3534:6;3530:17;3518:29;;3594:3;3587:4;3578:6;3570;3566:19;3562:30;3559:39;3556:59;;;3611:1;3608;3601:12;3556:59;3274:347;;;;;:::o;3626:1104::-;3739:6;3747;3755;3799:9;3790:7;3786:23;3829:3;3825:2;3821:12;3818:32;;;3846:1;3843;3836:12;3818:32;3870:4;3866:2;3862:13;3859:33;;;3888:1;3885;3878:12;3859:33;;3921:2;3915:9;3963:4;3955:6;3951:17;3987:18;4055:6;4043:10;4040:22;4035:2;4023:10;4020:18;4017:46;4014:72;;;4066:18;;:::i;:::-;4106:10;4102:2;4095:22;4154:9;4141:23;4133:6;4126:39;4215:2;4204:9;4200:18;4187:32;4174:45;;4259:2;4252:5;4248:14;4241:5;4238:25;4228:53;;4277:1;4274;4267:12;4228:53;4314:5;4309:2;4301:6;4297:15;4290:30;4381:2;4370:9;4366:18;4353:32;4348:2;4340:6;4336:15;4329:57;4447:2;4436:9;4432:18;4419:32;4414:2;4406:6;4402:15;4395:57;4471:6;4461:16;;4528:4;4517:9;4513:20;4500:34;4486:48;;4557:2;4549:6;4546:14;4543:34;;;4573:1;4570;4563:12;4543:34;;;4612:58;4662:7;4653:6;4642:9;4638:22;4612:58;:::i;:::-;3626:1104;;4689:8;;-1:-1:-1;4586:84:48;;-1:-1:-1;;;;3626:1104:48:o;5902:322::-;5943:3;5981:5;5975:12;6005:1;6015:128;6029:6;6026:1;6023:13;6015:128;;;6126:4;6111:13;;;6107:24;;6101:31;6088:11;;;6081:52;6044:12;6015:128;;;-1:-1:-1;6198:1:48;6162:16;;6187:13;;;-1:-1:-1;6162:16:48;;5902:322;-1:-1:-1;5902:322:48:o;6229:189::-;6358:3;6383:29;6408:3;6400:6;6383:29;:::i;6423:184::-;6493:6;6546:2;6534:9;6525:7;6521:23;6517:32;6514:52;;;6562:1;6559;6552:12;6514:52;-1:-1:-1;6585:16:48;;6423:184;-1:-1:-1;6423:184:48:o;6612:535::-;6825:2;6814:9;6807:21;6864:6;6859:2;6848:9;6844:18;6837:34;6922:6;6914;6908:3;6897:9;6893:19;6880:49;6979:1;6973:3;6964:6;6953:9;6949:22;6945:32;6938:43;6788:4;7049:3;7042:2;7038:7;7033:2;7025:6;7021:15;7017:29;7006:9;7002:45;6998:55;6990:63;;7091:6;7084:4;7073:9;7069:20;7062:36;7134:6;7129:2;7118:9;7114:18;7107:34;6612:535;;;;;;;:::o;7152:127::-;7213:10;7208:3;7204:20;7201:1;7194:31;7244:4;7241:1;7234:15;7268:4;7265:1;7258:15;7284:135;7323:3;7344:17;;;7341:43;;7364:18;;:::i;:::-;-1:-1:-1;7411:1:48;7400:13;;7284:135::o;7424:127::-;7485:10;7480:3;7476:20;7473:1;7466:31;7516:4;7513:1;7506:15;7540:4;7537:1;7530:15;7556:128;7623:9;;;7644:11;;;7641:37;;;7658:18;;:::i;7689:125::-;7754:9;;;7775:10;;;7772:36;;;7788:18;;:::i;7819:271::-;-1:-1:-1;;;;;;8004:26:48;;7992:39;;7974:3;8047:37;8081:1;8072:11;;8064:6;8047:37;:::i;:::-;8040:44;7819:271;-1:-1:-1;;;;7819:271:48:o;8095:127::-;8156:10;8151:3;8147:20;8144:1;8137:31;8187:4;8184:1;8177:15;8211:4;8208:1;8201:15" }, "id": 43, "metadata": { @@ -674,11 +674,11 @@ ] }, "src/Blobstream0.sol": { - "keccak256": "0x751cc2bcd88df226cef2c04fa721c352e84f9c36e9a9e9fb3f4468fbc9517066", + "keccak256": "0x06a78ccef85299c6cec7788183b5c321a9bd9eb664826298ce3d4d57a806ae54", "license": "Apache-2.0", "urls": [ - "bzz-raw://7871743294f9d6e64a8155b4ec70c8a47ec8b8bc45ab79afbe59439f4b0b930b", - "dweb:/ipfs/QmRWZDx5FSev48Xw5HW7mUfVKjp1i7EisA2poCsgSJtSmW" + "bzz-raw://117324a9cdbcbd078c4096acc6c031ab04ff42adc9736ffba68d4af8132b9358", + "dweb:/ipfs/QmauuLq9CEufUyodPKcG6eKzHna6c1i6G7paR1YmGopPTZ" ] }, "src/ImageID.sol": { @@ -709,5 +709,5 @@ "verifier()": "2b7ac3f3", "verifyAttestation(uint256,(uint256,bytes32),(bytes32[],uint256,uint256))": "1f3302a9" }, - "rawMetadata": "{\"compiler\":{\"version\":\"0.8.23+commit.f704f362\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract IRiscZeroVerifier\",\"name\":\"_verifier\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_trustedHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"_trustedHeight\",\"type\":\"uint64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"InvalidTargetHeight\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidTrustedHeaderHash\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proofNonce\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"startBlock\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"endBlock\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"dataCommitment\",\"type\":\"bytes32\"}],\"name\":\"DataCommitmentStored\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"blockNumber\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"headerHash\",\"type\":\"bytes32\"}],\"name\":\"HeadUpdate\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"imageId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"latestBlockHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"latestHeight\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proofNonce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"trustedHeaderHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"newHeight\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"newHeaderHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"merkleRoot\",\"type\":\"bytes32\"}],\"internalType\":\"struct RangeCommitment\",\"name\":\"_commit\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"_seal\",\"type\":\"bytes\"}],\"name\":\"updateRange\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"verifier\",\"outputs\":[{\"internalType\":\"contract IRiscZeroVerifier\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_proofNonce\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"height\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"dataRoot\",\"type\":\"bytes32\"}],\"internalType\":\"struct DataRootTuple\",\"name\":\"_tuple\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32[]\",\"name\":\"sideNodes\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"key\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"numLeaves\",\"type\":\"uint256\"}],\"internalType\":\"struct BinaryMerkleProof\",\"name\":\"_proof\",\"type\":\"tuple\"}],\"name\":\"verifyAttestation\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"DataCommitmentStored(uint256,uint64,uint64,bytes32)\":{\"params\":{\"dataCommitment\":\"The data commitment for the block range.\",\"endBlock\":\"The end block of the block range.\",\"proofNonce\":\"The nonce of the proof.\",\"startBlock\":\"The start block of the block range.\"}}},\"kind\":\"dev\",\"methods\":{\"verifyAttestation(uint256,(uint256,bytes32),(bytes32[],uint256,uint256))\":{\"params\":{\"_proof\":\"Binary Merkle tree proof that `tuple` is in the root at `_tupleRootNonce`.\",\"_proofNonce\":\"Nonce of the tuple root to prove against.\",\"_tuple\":\"Data root tuple to prove inclusion of.\"},\"returns\":{\"_0\":\"`true` is proof is valid, `false` otherwise.\"}}},\"stateVariables\":{\"latestBlockHash\":{\"details\":\"always update this in tandem with\"}},\"title\":\"A starter application using RISC Zero.\",\"version\":1},\"userdoc\":{\"errors\":{\"InvalidTargetHeight()\":[{\"notice\":\"Target height for next batch was below the current height.\"}],\"InvalidTrustedHeaderHash()\":[{\"notice\":\"Trusted block hash does not equal the commitment from the new batch.\"}]},\"events\":{\"DataCommitmentStored(uint256,uint64,uint64,bytes32)\":{\"notice\":\"Data commitment stored for the block range [startBlock, endBlock) with proof nonce. NOTE: This event matches existing Blobstream contracts, for ease of integration.\"},\"HeadUpdate(uint64,bytes32)\":{\"notice\":\"Emits event with the new head update. NOTE: Matches existing Blobstream contract, for ease of integration.\"}},\"kind\":\"user\",\"methods\":{\"constructor\":{\"notice\":\"Initialize the contract, binding it to a specified RISC Zero verifier.\"},\"imageId()\":{\"notice\":\"Image ID of the only zkVM binary to accept verification from. The image ID is similar to the address of a smart contract. It uniquely represents the logic of that guest program, ensuring that only proofs generated from a pre-defined guest program (in this case, checking if a number is even) are considered valid.\"},\"latestBlockHash()\":{\"notice\":\"The latest block hash validated.\"},\"latestHeight()\":{\"notice\":\"The latest height validated.\"},\"updateRange((bytes32,uint64,bytes32,bytes32),bytes)\":{\"notice\":\"Validate a proof of a new header range, update state.\"},\"verifier()\":{\"notice\":\"RISC Zero verifier contract address.\"},\"verifyAttestation(uint256,(uint256,bytes32),(bytes32[],uint256,uint256))\":{\"notice\":\"Verify a Data Availability attestation. Method of IDAOracle from Blobstream contract.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/Blobstream0.sol\":\"Blobstream0\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":blobstream-contracts/=lib/blobstream-contracts/src/\",\":blobstream/=lib/blobstream-contracts/src/\",\":ds-test/=lib/blobstream-contracts/lib/ds-test/src/\",\":erc4626-tests/=lib/blobstream-contracts/lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/blobstream-contracts/lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/\",\":risc0-ethereum/=lib/risc0-ethereum/\",\":risc0/=lib/risc0-ethereum/contracts/src/\",\":tree/=lib/blobstream-contracts/src/lib/tree/\",\":verifier/=lib/blobstream-contracts/src/lib/verifier/\"]},\"sources\":{\"lib/blobstream-contracts/src/DataRootTuple.sol\":{\"keccak256\":\"0x0526597d14a6d7f258ec48e434a9b60c9a8781764a8f23c878d49926daeb5d1c\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://06ee253f8d0f58dbe66c64cb5d2945182ba3bced088167472d8f953cec421916\",\"dweb:/ipfs/QmUF9jjr6bH3pPgjGAZqYhsUn7EevqU7kZn8RBqQ4EoU2w\"]},\"lib/blobstream-contracts/src/IDAOracle.sol\":{\"keccak256\":\"0xc35648b17d3587bc3a627f67a328874db536ee24c11b970c3c57226d69a32eec\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://362610301e6057d10777c84111d4bb43af53af75a488fb8ab8666a775302a3fc\",\"dweb:/ipfs/QmURgSTYhiguV1oCUARaTTWrpFHg5nMEtxhPVcpUDuEKq6\"]},\"lib/blobstream-contracts/src/lib/tree/Constants.sol\":{\"keccak256\":\"0x2050b2be8a739ce250cc5cea1556936c7937915b5d7fde269dd70e8e7eb660c4\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://946ea30d1001048a800f60bb24d2ab7ecf5f92ae2abd212f3f855e37a6840ce7\",\"dweb:/ipfs/QmW2PnhAB5h2eCCM6Vafg8ZUpBttjLTbBhtXjJh3SSrYEN\"]},\"lib/blobstream-contracts/src/lib/tree/Types.sol\":{\"keccak256\":\"0xa47e9e20fef88264acdf1fc6bc0b3bb9f23c7022f5de8d203a1014895a606958\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d480249b6adf8730bffcf26eed5902eb9fd1d56d11f931b35a9e19c6415b3f47\",\"dweb:/ipfs/QmPCrcMmQdNMYG232WxEg2zZRFvXQqdEZgwQNMaDJ2oNab\"]},\"lib/blobstream-contracts/src/lib/tree/Utils.sol\":{\"keccak256\":\"0x9760cb3ab3d4f412949b9be1bbdf5d9e7954cad44a94a4f7fe90fcffb86fe7fa\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://06edf92a63d5b2c3459800acc6945071ee069be6df03b70f28440c5c732465aa\",\"dweb:/ipfs/QmU4LnS5ckxXpEBE82y5gfsNxn5gUQPh273nLrmfPP9pjD\"]},\"lib/blobstream-contracts/src/lib/tree/binary/BinaryMerkleProof.sol\":{\"keccak256\":\"0x9fb953284b455b544091f058fdb11ac73928093517333909c0744d9319410688\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://938230a60210345fe7cc661708c4fe0db663a5f5b5306f05fe4023b44f104b6e\",\"dweb:/ipfs/QmUvcJuDmwnbRzXX5qgV4Mckg6ujvMeo46SrTPvgpPhFSF\"]},\"lib/blobstream-contracts/src/lib/tree/binary/BinaryMerkleTree.sol\":{\"keccak256\":\"0x90dc9ac613014c2d3fcebbd23f2b5af67188b7de80b2ef853f20c91a14ce68fd\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://4dffcfb8911d174787b05d814c423ea368c6526e32d762576fb5109e517a185f\",\"dweb:/ipfs/QmRxYnjwkEANhqXkoNifG2kbGtEymyLRU5h2NyPTZ5wbSE\"]},\"lib/blobstream-contracts/src/lib/tree/binary/TreeHasher.sol\":{\"keccak256\":\"0x2f16501eac14f6e2a61de29d3aa10e3aaf8e0a594fc9cf8dc2d955bb2f6d54e0\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://984a2e5d52cfdd38f2c597bddc4a2de8ad1e4dd9c81008376569a29c74fa963e\",\"dweb:/ipfs/QmaXhfHD58Jv4nSw3qw2hGwbDSPKDjFzPNYWm9Y4KWiigm\"]},\"lib/risc0-ethereum/contracts/src/IRiscZeroVerifier.sol\":{\"keccak256\":\"0x19341f62c8fe3c0945ebffa4f25d49706ded741af98eaacb7ade824c947f61a4\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://5d443c7187fd565e25acdfd3df63f14421d06dda0839470cb475546f7c9908c0\",\"dweb:/ipfs/QmeaHPjKmGZBC15iiYKsDCY1k2UY3iYZiNB6Pdc8ow6aVX\"]},\"lib/risc0-ethereum/contracts/src/Util.sol\":{\"keccak256\":\"0x230a9a58bb2b0c68d4921ecc3672783f941890a2fa3a238dbe5188cfb7658b82\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://586cb5296c564761609ca8aaae5b1fbbdb19ab1e174f7197f602572d9e82b70c\",\"dweb:/ipfs/QmWxDmucSfg3Wgdk1rVcheDHwkziTsXWvKpKSCnxtpQBqg\"]},\"src/Blobstream0.sol\":{\"keccak256\":\"0x751cc2bcd88df226cef2c04fa721c352e84f9c36e9a9e9fb3f4468fbc9517066\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://7871743294f9d6e64a8155b4ec70c8a47ec8b8bc45ab79afbe59439f4b0b930b\",\"dweb:/ipfs/QmRWZDx5FSev48Xw5HW7mUfVKjp1i7EisA2poCsgSJtSmW\"]},\"src/ImageID.sol\":{\"keccak256\":\"0x95e4d469419b11520727e0faa8e3cdd3997b67764f79d0f70aad22193ca21d0c\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://3341ae1a62ac565a08be30a86f80f0e41928054d186dbf448514d7c81f54218d\",\"dweb:/ipfs/QmVAcvhBtVAJ4T83rpYyjPA77r8Xm8VQS8dSBA4t16dv4o\"]},\"src/RangeCommitment.sol\":{\"keccak256\":\"0x5e348841d50935293df2072b720b55b4efa76bb66afd34d64c7c77c1d8a209d8\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://4ef3085d6c2cf5badf284827eaa3cdc469663fe32f6f3356a4381f14923b36df\",\"dweb:/ipfs/QmcPw35WFcVvDJPDhgd67R3mhtRe6GJUGTJ5dwBz5fVBHf\"]}},\"version\":1}" + "rawMetadata": "{\"compiler\":{\"version\":\"0.8.23+commit.f704f362\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract IRiscZeroVerifier\",\"name\":\"_verifier\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"_trustedHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"_trustedHeight\",\"type\":\"uint64\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"InvalidTargetHeight\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidTrustedHeaderHash\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proofNonce\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"startBlock\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"uint64\",\"name\":\"endBlock\",\"type\":\"uint64\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"dataCommitment\",\"type\":\"bytes32\"}],\"name\":\"DataCommitmentStored\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"blockNumber\",\"type\":\"uint64\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"headerHash\",\"type\":\"bytes32\"}],\"name\":\"HeadUpdate\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"imageId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"latestBlockHash\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"latestHeight\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proofNonce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"trustedHeaderHash\",\"type\":\"bytes32\"},{\"internalType\":\"uint64\",\"name\":\"newHeight\",\"type\":\"uint64\"},{\"internalType\":\"bytes32\",\"name\":\"newHeaderHash\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"merkleRoot\",\"type\":\"bytes32\"}],\"internalType\":\"struct RangeCommitment\",\"name\":\"_commit\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"_seal\",\"type\":\"bytes\"}],\"name\":\"updateRange\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"verifier\",\"outputs\":[{\"internalType\":\"contract IRiscZeroVerifier\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_proofNonce\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"height\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"dataRoot\",\"type\":\"bytes32\"}],\"internalType\":\"struct DataRootTuple\",\"name\":\"_tuple\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"bytes32[]\",\"name\":\"sideNodes\",\"type\":\"bytes32[]\"},{\"internalType\":\"uint256\",\"name\":\"key\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"numLeaves\",\"type\":\"uint256\"}],\"internalType\":\"struct BinaryMerkleProof\",\"name\":\"_proof\",\"type\":\"tuple\"}],\"name\":\"verifyAttestation\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"DataCommitmentStored(uint256,uint64,uint64,bytes32)\":{\"params\":{\"dataCommitment\":\"The data commitment for the block range.\",\"endBlock\":\"The end block of the block range.\",\"proofNonce\":\"The nonce of the proof.\",\"startBlock\":\"The start block of the block range.\"}}},\"kind\":\"dev\",\"methods\":{\"verifyAttestation(uint256,(uint256,bytes32),(bytes32[],uint256,uint256))\":{\"params\":{\"_proof\":\"Binary Merkle tree proof that `tuple` is in the root at `_tupleRootNonce`.\",\"_proofNonce\":\"Nonce of the tuple root to prove against.\",\"_tuple\":\"Data root tuple to prove inclusion of.\"},\"returns\":{\"_0\":\"`true` is proof is valid, `false` otherwise.\"}}},\"stateVariables\":{\"latestBlockHash\":{\"details\":\"always update this in tandem with\"}},\"title\":\"A starter application using RISC Zero.\",\"version\":1},\"userdoc\":{\"errors\":{\"InvalidTargetHeight()\":[{\"notice\":\"Target height for next batch was below the current height.\"}],\"InvalidTrustedHeaderHash()\":[{\"notice\":\"Trusted block hash does not equal the commitment from the new batch.\"}]},\"events\":{\"DataCommitmentStored(uint256,uint64,uint64,bytes32)\":{\"notice\":\"Data commitment stored for the block range [startBlock, endBlock) with proof nonce. NOTE: This event matches existing Blobstream contracts, for ease of integration.\"},\"HeadUpdate(uint64,bytes32)\":{\"notice\":\"Emits event with the new head update. NOTE: Matches existing Blobstream contract, for ease of integration.\"}},\"kind\":\"user\",\"methods\":{\"constructor\":{\"notice\":\"Initialize the contract, binding it to a specified RISC Zero verifier.\"},\"imageId()\":{\"notice\":\"Image ID of the only zkVM binary to accept verification from. The image ID is similar to the address of a smart contract. It uniquely represents the logic of that guest program, ensuring that only proofs generated from a pre-defined guest program (in this case, checking if a number is even) are considered valid.\"},\"latestBlockHash()\":{\"notice\":\"The latest block hash validated.\"},\"latestHeight()\":{\"notice\":\"The latest height validated.\"},\"updateRange((bytes32,uint64,bytes32,bytes32),bytes)\":{\"notice\":\"Validate a proof of a new header range, update state.\"},\"verifier()\":{\"notice\":\"RISC Zero verifier contract address.\"},\"verifyAttestation(uint256,(uint256,bytes32),(bytes32[],uint256,uint256))\":{\"notice\":\"Verify a Data Availability attestation. Method of IDAOracle from Blobstream contract.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/Blobstream0.sol\":\"Blobstream0\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":blobstream-contracts/=lib/blobstream-contracts/src/\",\":blobstream/=lib/blobstream-contracts/src/\",\":ds-test/=lib/blobstream-contracts/lib/ds-test/src/\",\":erc4626-tests/=lib/blobstream-contracts/lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/blobstream-contracts/lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin/=lib/openzeppelin-contracts/\",\":risc0-ethereum/=lib/risc0-ethereum/\",\":risc0/=lib/risc0-ethereum/contracts/src/\",\":tree/=lib/blobstream-contracts/src/lib/tree/\",\":verifier/=lib/blobstream-contracts/src/lib/verifier/\"]},\"sources\":{\"lib/blobstream-contracts/src/DataRootTuple.sol\":{\"keccak256\":\"0x0526597d14a6d7f258ec48e434a9b60c9a8781764a8f23c878d49926daeb5d1c\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://06ee253f8d0f58dbe66c64cb5d2945182ba3bced088167472d8f953cec421916\",\"dweb:/ipfs/QmUF9jjr6bH3pPgjGAZqYhsUn7EevqU7kZn8RBqQ4EoU2w\"]},\"lib/blobstream-contracts/src/IDAOracle.sol\":{\"keccak256\":\"0xc35648b17d3587bc3a627f67a328874db536ee24c11b970c3c57226d69a32eec\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://362610301e6057d10777c84111d4bb43af53af75a488fb8ab8666a775302a3fc\",\"dweb:/ipfs/QmURgSTYhiguV1oCUARaTTWrpFHg5nMEtxhPVcpUDuEKq6\"]},\"lib/blobstream-contracts/src/lib/tree/Constants.sol\":{\"keccak256\":\"0x2050b2be8a739ce250cc5cea1556936c7937915b5d7fde269dd70e8e7eb660c4\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://946ea30d1001048a800f60bb24d2ab7ecf5f92ae2abd212f3f855e37a6840ce7\",\"dweb:/ipfs/QmW2PnhAB5h2eCCM6Vafg8ZUpBttjLTbBhtXjJh3SSrYEN\"]},\"lib/blobstream-contracts/src/lib/tree/Types.sol\":{\"keccak256\":\"0xa47e9e20fef88264acdf1fc6bc0b3bb9f23c7022f5de8d203a1014895a606958\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://d480249b6adf8730bffcf26eed5902eb9fd1d56d11f931b35a9e19c6415b3f47\",\"dweb:/ipfs/QmPCrcMmQdNMYG232WxEg2zZRFvXQqdEZgwQNMaDJ2oNab\"]},\"lib/blobstream-contracts/src/lib/tree/Utils.sol\":{\"keccak256\":\"0x9760cb3ab3d4f412949b9be1bbdf5d9e7954cad44a94a4f7fe90fcffb86fe7fa\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://06edf92a63d5b2c3459800acc6945071ee069be6df03b70f28440c5c732465aa\",\"dweb:/ipfs/QmU4LnS5ckxXpEBE82y5gfsNxn5gUQPh273nLrmfPP9pjD\"]},\"lib/blobstream-contracts/src/lib/tree/binary/BinaryMerkleProof.sol\":{\"keccak256\":\"0x9fb953284b455b544091f058fdb11ac73928093517333909c0744d9319410688\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://938230a60210345fe7cc661708c4fe0db663a5f5b5306f05fe4023b44f104b6e\",\"dweb:/ipfs/QmUvcJuDmwnbRzXX5qgV4Mckg6ujvMeo46SrTPvgpPhFSF\"]},\"lib/blobstream-contracts/src/lib/tree/binary/BinaryMerkleTree.sol\":{\"keccak256\":\"0x90dc9ac613014c2d3fcebbd23f2b5af67188b7de80b2ef853f20c91a14ce68fd\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://4dffcfb8911d174787b05d814c423ea368c6526e32d762576fb5109e517a185f\",\"dweb:/ipfs/QmRxYnjwkEANhqXkoNifG2kbGtEymyLRU5h2NyPTZ5wbSE\"]},\"lib/blobstream-contracts/src/lib/tree/binary/TreeHasher.sol\":{\"keccak256\":\"0x2f16501eac14f6e2a61de29d3aa10e3aaf8e0a594fc9cf8dc2d955bb2f6d54e0\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://984a2e5d52cfdd38f2c597bddc4a2de8ad1e4dd9c81008376569a29c74fa963e\",\"dweb:/ipfs/QmaXhfHD58Jv4nSw3qw2hGwbDSPKDjFzPNYWm9Y4KWiigm\"]},\"lib/risc0-ethereum/contracts/src/IRiscZeroVerifier.sol\":{\"keccak256\":\"0x19341f62c8fe3c0945ebffa4f25d49706ded741af98eaacb7ade824c947f61a4\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://5d443c7187fd565e25acdfd3df63f14421d06dda0839470cb475546f7c9908c0\",\"dweb:/ipfs/QmeaHPjKmGZBC15iiYKsDCY1k2UY3iYZiNB6Pdc8ow6aVX\"]},\"lib/risc0-ethereum/contracts/src/Util.sol\":{\"keccak256\":\"0x230a9a58bb2b0c68d4921ecc3672783f941890a2fa3a238dbe5188cfb7658b82\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://586cb5296c564761609ca8aaae5b1fbbdb19ab1e174f7197f602572d9e82b70c\",\"dweb:/ipfs/QmWxDmucSfg3Wgdk1rVcheDHwkziTsXWvKpKSCnxtpQBqg\"]},\"src/Blobstream0.sol\":{\"keccak256\":\"0x06a78ccef85299c6cec7788183b5c321a9bd9eb664826298ce3d4d57a806ae54\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://117324a9cdbcbd078c4096acc6c031ab04ff42adc9736ffba68d4af8132b9358\",\"dweb:/ipfs/QmauuLq9CEufUyodPKcG6eKzHna6c1i6G7paR1YmGopPTZ\"]},\"src/ImageID.sol\":{\"keccak256\":\"0x95e4d469419b11520727e0faa8e3cdd3997b67764f79d0f70aad22193ca21d0c\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://3341ae1a62ac565a08be30a86f80f0e41928054d186dbf448514d7c81f54218d\",\"dweb:/ipfs/QmVAcvhBtVAJ4T83rpYyjPA77r8Xm8VQS8dSBA4t16dv4o\"]},\"src/RangeCommitment.sol\":{\"keccak256\":\"0x5e348841d50935293df2072b720b55b4efa76bb66afd34d64c7c77c1d8a209d8\",\"license\":\"Apache-2.0\",\"urls\":[\"bzz-raw://4ef3085d6c2cf5badf284827eaa3cdc469663fe32f6f3356a4381f14923b36df\",\"dweb:/ipfs/QmcPw35WFcVvDJPDhgd67R3mhtRe6GJUGTJ5dwBz5fVBHf\"]}},\"version\":1}" } \ No newline at end of file diff --git a/service/src/blobstream.rs b/service/src/blobstream.rs index c5b33aa..c9e6dd5 100644 --- a/service/src/blobstream.rs +++ b/service/src/blobstream.rs @@ -104,7 +104,8 @@ where ); // TODO can prove proactively, this is very basic impl - let block_target = eth_verified_height + self.batch_size; + let range_start = eth_verified_height + 1; + let block_target = range_start + self.batch_size; if block_target > tm_height { let wait_time = 15 * (block_target - tm_height); tracing::info!( @@ -117,7 +118,7 @@ where } let receipt = handle_temporal_result!( - prove_block_range(&self.tm_client, eth_verified_height..block_target).await, + prove_block_range(&self.tm_client, range_start..block_target).await, consecutive_failures ); handle_temporal_result!( diff --git a/service/tests/e2e_test.rs b/service/tests/e2e_test.rs index 69e0705..3ad431a 100644 --- a/service/tests/e2e_test.rs +++ b/service/tests/e2e_test.rs @@ -86,7 +86,7 @@ async fn e2e_basic_range() -> anyhow::Result<()> { FixedBytes::<32>::from_hex( "5C5451567973D8658A607D58F035BA9078291E33D880A0E6E67145C717E6B11B", )?, - BATCH_START, + BATCH_START - 1, ) .await?; diff --git a/usage-guide.md b/usage-guide.md index c3165e4..f5ad26a 100644 --- a/usage-guide.md +++ b/usage-guide.md @@ -12,7 +12,12 @@ anvil Deploy verifier and blobstream contract ```console -RUST_LOG=info cargo run -- deploy --eth-rpc http://127.0.0.1:8545 --private-key-hex 0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80 --tm-height 10 --tm-block-hash 5D3BDD6B58620A0B6C5A9122863D11DA68EB18935D12A9F4E4CF1A27EB39F1AC --dev +RUST_LOG=info cargo run -p blobstream0-cli -- deploy \ + --eth-rpc http://127.0.0.1:8545 \ + --private-key-hex 0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80 \ + --tm-height 9 \ + --tm-block-hash 5C5451567973D8658A607D58F035BA9078291E33D880A0E6E67145C717E6B11B \ + --dev ``` > The `--tm-height` and `--tm-block-hash` options are pulled from the network that is being synced. Make sure these match the network from `--tendermint-rpc` in the following command. @@ -20,7 +25,12 @@ RUST_LOG=info cargo run -- deploy --eth-rpc http://127.0.0.1:8545 --private-key- Start the service: ``` -RISC0_DEV_MODE=true RUST_LOG=host=trace,info cargo run -p service -- --tendermint-rpc https://rpc.celestia-mocha.com --eth-rpc http://127.0.0.1:8545/ --eth-address 0xe7f1725E7734CE288F8367e1Bb143E90bb3F0512 --private-key-hex 0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80 --batch-size 4 +RISC0_DEV_MODE=true RUST_LOG=host=trace,info cargo run -p service -- \ + --tendermint-rpc https://rpc.celestia-mocha.com \ + --eth-rpc http://127.0.0.1:8545/ \ + --eth-address 0xe7f1725E7734CE288F8367e1Bb143E90bb3F0512 \ + --private-key-hex 0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80 \ + --batch-size 4 ``` Where the `--tendermint-rpc` param can be configured to be any other network endpoint, and the `--batch-size` can be configured. @@ -33,7 +43,11 @@ Where the `--tendermint-rpc` param can be configured to be any other network end The flow is similar to above, except that the `--dev` flag is removed from the deployment, to deploy the groth16 verifier in its place for that step: ``` -RUST_LOG=info cargo run -- deploy --eth-rpc http://127.0.0.1:8545 --private-key-hex 0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80 --tm-height 10 --tm-block-hash 5D3BDD6B58620A0B6C5A9122863D11DA68EB18935D12A9F4E4CF1A27EB39F1AC +RUST_LOG=info cargo run -p blobstream0-cli -- deploy \ + --eth-rpc http://127.0.0.1:8545 \ + --private-key-hex 0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80 \ + --tm-height 9 \ + --tm-block-hash 5C5451567973D8658A607D58F035BA9078291E33D880A0E6E67145C717E6B11B ``` ### Sepolia @@ -46,11 +60,21 @@ Currently there are already groth16 and mock verifiers deployed to Sepolia. Deploy the blobstream contract with the `--verifier-address` from above: ``` -RUST_LOG=info cargo run -- deploy --eth-rpc https://ethereum-sepolia-rpc.publicnode.com --private-key-hex --tm-height 1802142 --tm-block-hash 6D8FD8ADC8FBD5E7765EC557D9DF86041F63F9109202A888D8D246B3BCC3B46A --verifier-address 0x925d8331ddc0a1F0d96E68CF073DFE1d92b69187 +RUST_LOG=info cargo run -p blobstream0-cli -- deploy \ + --eth-rpc https://ethereum-sepolia-rpc.publicnode.com \ + --private-key-hex \ + --tm-height 1802142 \ + --tm-block-hash 6D8FD8ADC8FBD5E7765EC557D9DF86041F63F9109202A888D8D246B3BCC3B46A \ + --verifier-address 0x925d8331ddc0a1F0d96E68CF073DFE1d92b69187 ``` Run the service with `RISC0_DEV_MODE=true` if you chose the mock verifier. ``` -RUST_LOG=host=trace,info cargo run -p service --release -- --tendermint-rpc https://rpc.celestia-mocha.com --eth-rpc https://ethereum-sepolia-rpc.publicnode.com --eth-address --private-key-hex --batch-size 16 +RUST_LOG=host=trace,info cargo run -p service --release -- \ + --tendermint-rpc https://rpc.celestia-mocha.com \ + --eth-rpc https://ethereum-sepolia-rpc.publicnode.com \ + --eth-address \ + --private-key-hex \ + --batch-size 16 ```