{ "_format": "hh-sol-artifact-1", "contractName": "PoseidonHasher", "sourceName": "contracts/hashers/PoseidonHasher.sol", "abi": [ { "inputs": [ { "internalType": "uint256[]", "name": "array", "type": "uint256[]" } ], "name": "hash11", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [ { "internalType": "uint256[3]", "name": "array", "type": "uint256[3]" } ], "name": "hash3", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [ { "internalType": "uint256[5]", "name": "array", "type": "uint256[5]" } ], "name": "hash5", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_left", "type": "uint256" }, { "internalType": "uint256", "name": "_right", "type": "uint256" } ], "name": "hashLeftRight", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "i", "type": "uint256" } ], "name": "zeros", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "pure", "type": "function" } ], "bytecode": "0x608060405234801561001057600080fd5b506110c9806100206000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c80635bb939951461005c5780638a1a52d2146100815780639cfced9714610094578063bea140b3146100a7578063e8295588146100ba575b600080fd5b61006f61006a366004610f4a565b6100cd565b60405190815260200160405180910390f35b61006f61008f366004610e6b565b61025d565b61006f6100a2366004610df0565b610629565b61006f6100b5366004610d6a565b6106b9565b61006f6100c8366004610f18565b6106f3565b60007f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000183106101435760405162461bcd60e51b815260206004820181905260248201527f5f6c6566742073686f756c6420626520696e7369646520746865206669656c6460448201526064015b60405180910390fd5b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182106101bc5760405162461bcd60e51b815260206004820152602160248201527f5f72696768742073686f756c6420626520696e7369646520746865206669656c6044820152601960fa1b606482015260840161013a565b6101c4610d2e565b838152602081018390526040516314d2f97b60e11b815273__$adda18b11e64fa5c1b53cac1d652236b49$__906329a5f2f690610205908490600401610f6c565b60206040518083038186803b15801561021d57600080fd5b505af4158015610231573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102559190610f31565b949350505050565b60408051600b8082526101808201909252600091829190602082016101608036833701905050905061028d610d4c565b610295610d4c565b60005b85518110156102ea578581815181106102b3576102b3611067565b60200260200101518482815181106102cd576102cd611067565b6020908102919091010152806102e281611036565b915050610298565b5084515b600b81101561032857600084828151811061030b5761030b611067565b60209081029190910101528061032081611036565b9150506102ee565b5060005b60058110156103b35783818151811061034757610347611067565b602002602001015183826005811061036157610361611067565b60200201528361037282600561101e565b8151811061038257610382611067565b602002602001015182826005811061039c5761039c611067565b6020020152806103ab81611036565b91505061032c565b506103bc610d2e565b604051630926f44b60e31b815273__$77bdca17f8b2665e259d6d106ef32fb695$__90634937a258906103f3908690600401610fc5565b60206040518083038186803b15801561040b57600080fd5b505af415801561041f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104439190610f31565b8152604051630926f44b60e31b815273__$77bdca17f8b2665e259d6d106ef32fb695$__90634937a2589061047c908590600401610fc5565b60206040518083038186803b15801561049457600080fd5b505af41580156104a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104cc9190610f31565b60208201526104d9610d2e565b6040516314d2f97b60e11b815273__$adda18b11e64fa5c1b53cac1d652236b49$__906329a5f2f690610510908590600401610f6c565b60206040518083038186803b15801561052857600080fd5b505af415801561053c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105609190610f31565b815284518590600a90811061057757610577611067565b60200260200101518160016002811061059257610592611067565b60200201526040516314d2f97b60e11b815273__$adda18b11e64fa5c1b53cac1d652236b49$__906329a5f2f6906105ce908490600401610f6c565b60206040518083038186803b1580156105e657600080fd5b505af41580156105fa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061061e9190610f31565b979650505050505050565b604051630926f44b60e31b815260009073__$77bdca17f8b2665e259d6d106ef32fb695$__90634937a25890610663908590600401610fc5565b60206040518083038186803b15801561067b57600080fd5b505af415801561068f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106b39190610f31565b92915050565b6040516304b98e1d60e31b815260009073__$d6e4df51c499e01d413268776481fb3eb7$__906325cc70e890610663908590600401610f9d565b60008161072157507f2fe54c60d3acabf3343a35b6eba15db4821b340f76e741e2249685ed4899af6c919050565b816001141561075157507f13e37f2d6cb86c78ccc1788607c2b199788c6bb0a615a21f2e7a8e88384222f8919050565b816002141561078157507f217126fa352c326896e8c2803eec8fd63ad50cf65edfef27a41a9e32dc622765919050565b81600314156107b157507f0e28a61a9b3e91007d5a9e3ada18e1b24d6d230c618388ee5df34cacd7397eee919050565b81600414156107e157507f27953447a6979839536badc5425ed15fadb0e292e9bc36f92f0aa5cfa5013587919050565b816005141561081157507f194191edbfb91d10f6a7afd315f33095410c7801c47175c2df6dc2cce0e3affc919050565b816006141561084157507f1733dece17d71190516dbaf1927936fa643dc7079fc0cc731de9d6845a47741f919050565b816007141561087157507f267855a7dc75db39d81d17f95d0a7aa572bf5ae19f4db0e84221d2b2ef999219919050565b81600814156108a157507f1184e11836b4c36ad8238a340ecc0985eeba665327e33e9b0e3641027c27620d919050565b81600914156108d157507f0702ab83a135d7f55350ab1bfaa90babd8fc1d2b3e6a7215381a7b2213d6c5ce919050565b81600a141561090157507f2eecc0de814cfd8c57ce882babb2e30d1da56621aef7a47f3291cffeaec26ad7919050565b81600b141561093157507f280bc02145c155d5833585b6c7b08501055157dd30ce005319621dc462d33b47919050565b81600c141561096157507f045132221d1fa0a7f4aed8acd2cbec1e2189b7732ccb2ec272b9c60f0d5afc5b919050565b81600d141561099157507f27f427ccbf58a44b1270abbe4eda6ba53bd6ac4d88cf1e00a13c4371ce71d366919050565b81600e14156109c157507f1617eaae5064f26e8f8a6493ae92bfded7fde71b65df1ca6d5dcec0df70b2cef919050565b81600f14156109f157507f20c6b400d0ea1b15435703c31c31ee63ad7ba5c8da66cec2796feacea575abca919050565b8160101415610a2157507f09589ddb438723f53a8e57bdada7c5f8ed67e8fece3889a73618732965645eec919050565b8160111415610a5057507e64b6a738a5ff537db7b220f3394f0ecbd35bfd355c5425dc1166bf3236079b919050565b8160121415610a8057507f095de56281b1d5055e897c3574ff790d5ee81dbc5df784ad2d67795e557c9e9f919050565b8160131415610ab057507f11cf2e2887aa21963a6ec14289183efe4d4c60f14ecd3d6fe0beebdf855a9b63919050565b8160141415610ae057507f2b0f6fc0179fa65b6f73627c0e1e84c7374d2eaec44c9a48f2571393ea77bcbb919050565b8160151415610b1057507f16fdb637c2abf9c0f988dbf2fd64258c46fb6a273d537b2cf1603ea460b13279919050565b8160161415610b4057507f21bbd7e944f6124dad4c376df9cc12e7ca66e47dff703ff7cedb1a454edcf0ff919050565b8160171415610b7057507f2784f8220b1c963e468f590f137baaa1625b3b92a27ad9b6e84eb0d3454d9962919050565b8160181415610ba057507f16ace1a65b7534142f8cc1aad810b3d6a7a74ca905d9c275cb98ba57e509fc10919050565b8160191415610bd057507f2328068c6a8c24265124debd8fe10d3f29f0665ea725a65e3638f6192a96a013919050565b81601a1415610c0057507f2ddb991be1f028022411b4c4d2c22043e5e751c120736f00adf54acab1c9ac14919050565b81601b1415610c3057507f0113798410eaeb95056a464f70521eb58377c0155f2fe518a5594d38cc209cc0919050565b81601c1415610c6057507f202d1ae61526f0d0d01ef80fb5d4055a7af45721024c2c24cffd6a3798f54d50919050565b81601d1415610c9057507f23ab323453748129f2765f79615022f5bebd6f4096a796300aab049a60b0f187919050565b81601e1415610cc057507f1f15585f8947e378bcf8bd918716799da909acdb944c57150b1eb4565fda8aa0919050565b81601f1415610cf057507f1eb064b21055ac6a350cf41eb30e4ce2cb19680217df3a243617c2838185ad06919050565b60405162461bcd60e51b8152602060048201526013602482015272496e646578206f7574206f6620626f756e647360681b604482015260640161013a565b60405180604001604052806002906020820280368337509192915050565b6040518060a001604052806005906020820280368337509192915050565b600060608284031215610d7c57600080fd5b82601f830112610d8b57600080fd5b6040516060810181811067ffffffffffffffff82111715610dae57610dae61107d565b604052808360608101861015610dc357600080fd5b60005b6003811015610de5578135835260209283019290910190600101610dc6565b509195945050505050565b600060a08284031215610e0257600080fd5b82601f830112610e1157600080fd5b60405160a0810181811067ffffffffffffffff82111715610e3457610e3461107d565b604052808360a08101861015610e4957600080fd5b60005b6005811015610de5578135835260209283019290910190600101610e4c565b60006020808385031215610e7e57600080fd5b823567ffffffffffffffff80821115610e9657600080fd5b818501915085601f830112610eaa57600080fd5b813581811115610ebc57610ebc61107d565b8060051b9150610ecd848301610fed565b8181528481019084860184860187018a1015610ee857600080fd5b600095505b83861015610f0b578035835260019590950194918601918601610eed565b5098975050505050505050565b600060208284031215610f2a57600080fd5b5035919050565b600060208284031215610f4357600080fd5b5051919050565b60008060408385031215610f5d57600080fd5b50508035926020909101359150565b60408101818360005b6002811015610f94578151835260209283019290910190600101610f75565b50505092915050565b60608101818360005b6003811015610f94578151835260209283019290910190600101610fa6565b60a08101818360005b6005811015610f94578151835260209283019290910190600101610fce565b604051601f8201601f1916810167ffffffffffffffff811182821017156110165761101661107d565b604052919050565b6000821982111561103157611031611051565b500190565b600060001982141561104a5761104a611051565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fdfea264697066735822122090ec5696fec6b3b8d24983e87d721b6b945b05244fcf755cc39a16a9f8b8984864736f6c63430008050033", "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100575760003560e01c80635bb939951461005c5780638a1a52d2146100815780639cfced9714610094578063bea140b3146100a7578063e8295588146100ba575b600080fd5b61006f61006a366004610f4a565b6100cd565b60405190815260200160405180910390f35b61006f61008f366004610e6b565b61025d565b61006f6100a2366004610df0565b610629565b61006f6100b5366004610d6a565b6106b9565b61006f6100c8366004610f18565b6106f3565b60007f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000183106101435760405162461bcd60e51b815260206004820181905260248201527f5f6c6566742073686f756c6420626520696e7369646520746865206669656c6460448201526064015b60405180910390fd5b7f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000182106101bc5760405162461bcd60e51b815260206004820152602160248201527f5f72696768742073686f756c6420626520696e7369646520746865206669656c6044820152601960fa1b606482015260840161013a565b6101c4610d2e565b838152602081018390526040516314d2f97b60e11b815273__$adda18b11e64fa5c1b53cac1d652236b49$__906329a5f2f690610205908490600401610f6c565b60206040518083038186803b15801561021d57600080fd5b505af4158015610231573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102559190610f31565b949350505050565b60408051600b8082526101808201909252600091829190602082016101608036833701905050905061028d610d4c565b610295610d4c565b60005b85518110156102ea578581815181106102b3576102b3611067565b60200260200101518482815181106102cd576102cd611067565b6020908102919091010152806102e281611036565b915050610298565b5084515b600b81101561032857600084828151811061030b5761030b611067565b60209081029190910101528061032081611036565b9150506102ee565b5060005b60058110156103b35783818151811061034757610347611067565b602002602001015183826005811061036157610361611067565b60200201528361037282600561101e565b8151811061038257610382611067565b602002602001015182826005811061039c5761039c611067565b6020020152806103ab81611036565b91505061032c565b506103bc610d2e565b604051630926f44b60e31b815273__$77bdca17f8b2665e259d6d106ef32fb695$__90634937a258906103f3908690600401610fc5565b60206040518083038186803b15801561040b57600080fd5b505af415801561041f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104439190610f31565b8152604051630926f44b60e31b815273__$77bdca17f8b2665e259d6d106ef32fb695$__90634937a2589061047c908590600401610fc5565b60206040518083038186803b15801561049457600080fd5b505af41580156104a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104cc9190610f31565b60208201526104d9610d2e565b6040516314d2f97b60e11b815273__$adda18b11e64fa5c1b53cac1d652236b49$__906329a5f2f690610510908590600401610f6c565b60206040518083038186803b15801561052857600080fd5b505af415801561053c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105609190610f31565b815284518590600a90811061057757610577611067565b60200260200101518160016002811061059257610592611067565b60200201526040516314d2f97b60e11b815273__$adda18b11e64fa5c1b53cac1d652236b49$__906329a5f2f6906105ce908490600401610f6c565b60206040518083038186803b1580156105e657600080fd5b505af41580156105fa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061061e9190610f31565b979650505050505050565b604051630926f44b60e31b815260009073__$77bdca17f8b2665e259d6d106ef32fb695$__90634937a25890610663908590600401610fc5565b60206040518083038186803b15801561067b57600080fd5b505af415801561068f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106b39190610f31565b92915050565b6040516304b98e1d60e31b815260009073__$d6e4df51c499e01d413268776481fb3eb7$__906325cc70e890610663908590600401610f9d565b60008161072157507f2fe54c60d3acabf3343a35b6eba15db4821b340f76e741e2249685ed4899af6c919050565b816001141561075157507f13e37f2d6cb86c78ccc1788607c2b199788c6bb0a615a21f2e7a8e88384222f8919050565b816002141561078157507f217126fa352c326896e8c2803eec8fd63ad50cf65edfef27a41a9e32dc622765919050565b81600314156107b157507f0e28a61a9b3e91007d5a9e3ada18e1b24d6d230c618388ee5df34cacd7397eee919050565b81600414156107e157507f27953447a6979839536badc5425ed15fadb0e292e9bc36f92f0aa5cfa5013587919050565b816005141561081157507f194191edbfb91d10f6a7afd315f33095410c7801c47175c2df6dc2cce0e3affc919050565b816006141561084157507f1733dece17d71190516dbaf1927936fa643dc7079fc0cc731de9d6845a47741f919050565b816007141561087157507f267855a7dc75db39d81d17f95d0a7aa572bf5ae19f4db0e84221d2b2ef999219919050565b81600814156108a157507f1184e11836b4c36ad8238a340ecc0985eeba665327e33e9b0e3641027c27620d919050565b81600914156108d157507f0702ab83a135d7f55350ab1bfaa90babd8fc1d2b3e6a7215381a7b2213d6c5ce919050565b81600a141561090157507f2eecc0de814cfd8c57ce882babb2e30d1da56621aef7a47f3291cffeaec26ad7919050565b81600b141561093157507f280bc02145c155d5833585b6c7b08501055157dd30ce005319621dc462d33b47919050565b81600c141561096157507f045132221d1fa0a7f4aed8acd2cbec1e2189b7732ccb2ec272b9c60f0d5afc5b919050565b81600d141561099157507f27f427ccbf58a44b1270abbe4eda6ba53bd6ac4d88cf1e00a13c4371ce71d366919050565b81600e14156109c157507f1617eaae5064f26e8f8a6493ae92bfded7fde71b65df1ca6d5dcec0df70b2cef919050565b81600f14156109f157507f20c6b400d0ea1b15435703c31c31ee63ad7ba5c8da66cec2796feacea575abca919050565b8160101415610a2157507f09589ddb438723f53a8e57bdada7c5f8ed67e8fece3889a73618732965645eec919050565b8160111415610a5057507e64b6a738a5ff537db7b220f3394f0ecbd35bfd355c5425dc1166bf3236079b919050565b8160121415610a8057507f095de56281b1d5055e897c3574ff790d5ee81dbc5df784ad2d67795e557c9e9f919050565b8160131415610ab057507f11cf2e2887aa21963a6ec14289183efe4d4c60f14ecd3d6fe0beebdf855a9b63919050565b8160141415610ae057507f2b0f6fc0179fa65b6f73627c0e1e84c7374d2eaec44c9a48f2571393ea77bcbb919050565b8160151415610b1057507f16fdb637c2abf9c0f988dbf2fd64258c46fb6a273d537b2cf1603ea460b13279919050565b8160161415610b4057507f21bbd7e944f6124dad4c376df9cc12e7ca66e47dff703ff7cedb1a454edcf0ff919050565b8160171415610b7057507f2784f8220b1c963e468f590f137baaa1625b3b92a27ad9b6e84eb0d3454d9962919050565b8160181415610ba057507f16ace1a65b7534142f8cc1aad810b3d6a7a74ca905d9c275cb98ba57e509fc10919050565b8160191415610bd057507f2328068c6a8c24265124debd8fe10d3f29f0665ea725a65e3638f6192a96a013919050565b81601a1415610c0057507f2ddb991be1f028022411b4c4d2c22043e5e751c120736f00adf54acab1c9ac14919050565b81601b1415610c3057507f0113798410eaeb95056a464f70521eb58377c0155f2fe518a5594d38cc209cc0919050565b81601c1415610c6057507f202d1ae61526f0d0d01ef80fb5d4055a7af45721024c2c24cffd6a3798f54d50919050565b81601d1415610c9057507f23ab323453748129f2765f79615022f5bebd6f4096a796300aab049a60b0f187919050565b81601e1415610cc057507f1f15585f8947e378bcf8bd918716799da909acdb944c57150b1eb4565fda8aa0919050565b81601f1415610cf057507f1eb064b21055ac6a350cf41eb30e4ce2cb19680217df3a243617c2838185ad06919050565b60405162461bcd60e51b8152602060048201526013602482015272496e646578206f7574206f6620626f756e647360681b604482015260640161013a565b60405180604001604052806002906020820280368337509192915050565b6040518060a001604052806005906020820280368337509192915050565b600060608284031215610d7c57600080fd5b82601f830112610d8b57600080fd5b6040516060810181811067ffffffffffffffff82111715610dae57610dae61107d565b604052808360608101861015610dc357600080fd5b60005b6003811015610de5578135835260209283019290910190600101610dc6565b509195945050505050565b600060a08284031215610e0257600080fd5b82601f830112610e1157600080fd5b60405160a0810181811067ffffffffffffffff82111715610e3457610e3461107d565b604052808360a08101861015610e4957600080fd5b60005b6005811015610de5578135835260209283019290910190600101610e4c565b60006020808385031215610e7e57600080fd5b823567ffffffffffffffff80821115610e9657600080fd5b818501915085601f830112610eaa57600080fd5b813581811115610ebc57610ebc61107d565b8060051b9150610ecd848301610fed565b8181528481019084860184860187018a1015610ee857600080fd5b600095505b83861015610f0b578035835260019590950194918601918601610eed565b5098975050505050505050565b600060208284031215610f2a57600080fd5b5035919050565b600060208284031215610f4357600080fd5b5051919050565b60008060408385031215610f5d57600080fd5b50508035926020909101359150565b60408101818360005b6002811015610f94578151835260209283019290910190600101610f75565b50505092915050565b60608101818360005b6003811015610f94578151835260209283019290910190600101610fa6565b60a08101818360005b6005811015610f94578151835260209283019290910190600101610fce565b604051601f8201601f1916810167ffffffffffffffff811182821017156110165761101661107d565b604052919050565b6000821982111561103157611031611051565b500190565b600060001982141561104a5761104a611051565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fdfea264697066735822122090ec5696fec6b3b8d24983e87d721b6b945b05244fcf755cc39a16a9f8b8984864736f6c63430008050033", "linkReferences": { "contracts/hashers/Poseidon.sol": { "PoseidonT3": [ { "length": 20, "start": 509 }, { "length": 20, "start": 1288 }, { "length": 20, "start": 1478 } ], "PoseidonT4": [ { "length": 20, "start": 1771 } ], "PoseidonT6": [ { "length": 20, "start": 1003 }, { "length": 20, "start": 1140 }, { "length": 20, "start": 1627 } ] } }, "deployedLinkReferences": { "contracts/hashers/Poseidon.sol": { "PoseidonT3": [ { "length": 20, "start": 477 }, { "length": 20, "start": 1256 }, { "length": 20, "start": 1446 } ], "PoseidonT4": [ { "length": 20, "start": 1739 } ], "PoseidonT6": [ { "length": 20, "start": 971 }, { "length": 20, "start": 1108 }, { "length": 20, "start": 1595 } ] } } }