Warning! Contract bytecode has been changed and doesn't match the verified one. Therefore, interaction with this smart contract may be risky.
- Contract name:
- VectorContract
- Optimization enabled
- false
- Compiler version
- v0.8.25+commit.b61c2a91
- EVM Version
- default
- Verified at
- 2024-05-15T08:52:08.241475Z
Contract source code
// SPDX-License-Identifier: GPL-3.0 pragma solidity ^0.8.25; contract VectorContract { struct Vector { int x; int y; int z; } function addVectors(Vector memory v1, Vector memory v2) public pure returns (Vector memory) { return Vector(v1.x + v2.x, v1.y + v2.y, v1.z + v2.z); } function subtractVectors(Vector memory v1, Vector memory v2) public pure returns (Vector memory) { return Vector(v1.x - v2.x, v1.y - v2.y, v1.z - v2.z); } function dotProduct(Vector memory v1, Vector memory v2) public pure returns (int) { return (v1.x * v2.x) + (v1.y * v2.y) + (v1.z * v2.z); } }
Contract ABI
[{"type":"function","stateMutability":"pure","outputs":[{"type":"tuple","name":"","internalType":"struct VectorContract.Vector","components":[{"type":"int256","name":"x","internalType":"int256"},{"type":"int256","name":"y","internalType":"int256"},{"type":"int256","name":"z","internalType":"int256"}]}],"name":"addVectors","inputs":[{"type":"tuple","name":"v1","internalType":"struct VectorContract.Vector","components":[{"type":"int256","name":"x","internalType":"int256"},{"type":"int256","name":"y","internalType":"int256"},{"type":"int256","name":"z","internalType":"int256"}]},{"type":"tuple","name":"v2","internalType":"struct VectorContract.Vector","components":[{"type":"int256","name":"x","internalType":"int256"},{"type":"int256","name":"y","internalType":"int256"},{"type":"int256","name":"z","internalType":"int256"}]}]},{"type":"function","stateMutability":"pure","outputs":[{"type":"int256","name":"","internalType":"int256"}],"name":"dotProduct","inputs":[{"type":"tuple","name":"v1","internalType":"struct VectorContract.Vector","components":[{"type":"int256","name":"x","internalType":"int256"},{"type":"int256","name":"y","internalType":"int256"},{"type":"int256","name":"z","internalType":"int256"}]},{"type":"tuple","name":"v2","internalType":"struct VectorContract.Vector","components":[{"type":"int256","name":"x","internalType":"int256"},{"type":"int256","name":"y","internalType":"int256"},{"type":"int256","name":"z","internalType":"int256"}]}]},{"type":"function","stateMutability":"pure","outputs":[{"type":"tuple","name":"","internalType":"struct VectorContract.Vector","components":[{"type":"int256","name":"x","internalType":"int256"},{"type":"int256","name":"y","internalType":"int256"},{"type":"int256","name":"z","internalType":"int256"}]}],"name":"subtractVectors","inputs":[{"type":"tuple","name":"v1","internalType":"struct VectorContract.Vector","components":[{"type":"int256","name":"x","internalType":"int256"},{"type":"int256","name":"y","internalType":"int256"},{"type":"int256","name":"z","internalType":"int256"}]},{"type":"tuple","name":"v2","internalType":"struct VectorContract.Vector","components":[{"type":"int256","name":"x","internalType":"int256"},{"type":"int256","name":"y","internalType":"int256"},{"type":"int256","name":"z","internalType":"int256"}]}]}]
Contract Creation Code
0x6080604052348015600e575f80fd5b506105618061001c5f395ff3fe608060405234801561000f575f80fd5b506004361061003f575f3560e01c80631ec0d5dd146100435780634319da6a1461007357806385e04e5e146100a3575b5f80fd5b61005d60048036038101906100589190610339565b6100d3565b60405161006a9190610386565b60405180910390f35b61008d60048036038101906100889190610339565b61012a565b60405161009a91906103ee565b60405180910390f35b6100bd60048036038101906100b89190610339565b61018c565b6040516100ca91906103ee565b60405180910390f35b5f816040015183604001516100e89190610434565b826020015184602001516100fc9190610434565b835f0151855f015161010e9190610434565b61011891906104aa565b61012291906104aa565b905092915050565b6101326101ee565b6040518060600160405280835f0151855f015161014f91906104aa565b81526020018360200151856020015161016891906104aa565b81526020018360400151856040015161018191906104aa565b815250905092915050565b6101946101ee565b6040518060600160405280835f0151855f01516101b191906104eb565b8152602001836020015185602001516101ca91906104eb565b8152602001836040015185604001516101e391906104eb565b815250905092915050565b60405180606001604052805f81526020015f81526020015f81525090565b5f604051905090565b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6102638261021d565b810181811067ffffffffffffffff821117156102825761028161022d565b5b80604052505050565b5f61029461020c565b90506102a0828261025a565b919050565b5f819050919050565b6102b7816102a5565b81146102c1575f80fd5b50565b5f813590506102d2816102ae565b92915050565b5f606082840312156102ed576102ec610219565b5b6102f7606061028b565b90505f610306848285016102c4565b5f830152506020610319848285016102c4565b602083015250604061032d848285016102c4565b60408301525092915050565b5f8060c0838503121561034f5761034e610215565b5b5f61035c858286016102d8565b925050606061036d858286016102d8565b9150509250929050565b610380816102a5565b82525050565b5f6020820190506103995f830184610377565b92915050565b6103a8816102a5565b82525050565b606082015f8201516103c25f85018261039f565b5060208201516103d5602085018261039f565b5060408201516103e8604085018261039f565b50505050565b5f6060820190506104015f8301846103ae565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61043e826102a5565b9150610449836102a5565b9250828202610457816102a5565b91507f800000000000000000000000000000000000000000000000000000000000000084145f8412161561048e5761048d610407565b5b82820584148315176104a3576104a2610407565b5b5092915050565b5f6104b4826102a5565b91506104bf836102a5565b92508282019050828112155f8312168382125f8412151617156104e5576104e4610407565b5b92915050565b5f6104f5826102a5565b9150610500836102a5565b925082820390508181125f8412168282135f85121516171561052557610524610407565b5b9291505056fea2646970667358221220af8b7afd3ad3e459f4bba026aa5c4a5f0cc2da0bf4ea6d92fb103c8e0f36726d64736f6c63430008190033
Deployed ByteCode
0x608060405234801561000f575f80fd5b506004361061003f575f3560e01c80631ec0d5dd146100435780634319da6a1461007357806385e04e5e146100a3575b5f80fd5b61005d60048036038101906100589190610339565b6100d3565b60405161006a9190610386565b60405180910390f35b61008d60048036038101906100889190610339565b61012a565b60405161009a91906103ee565b60405180910390f35b6100bd60048036038101906100b89190610339565b61018c565b6040516100ca91906103ee565b60405180910390f35b5f816040015183604001516100e89190610434565b826020015184602001516100fc9190610434565b835f0151855f015161010e9190610434565b61011891906104aa565b61012291906104aa565b905092915050565b6101326101ee565b6040518060600160405280835f0151855f015161014f91906104aa565b81526020018360200151856020015161016891906104aa565b81526020018360400151856040015161018191906104aa565b815250905092915050565b6101946101ee565b6040518060600160405280835f0151855f01516101b191906104eb565b8152602001836020015185602001516101ca91906104eb565b8152602001836040015185604001516101e391906104eb565b815250905092915050565b60405180606001604052805f81526020015f81526020015f81525090565b5f604051905090565b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6102638261021d565b810181811067ffffffffffffffff821117156102825761028161022d565b5b80604052505050565b5f61029461020c565b90506102a0828261025a565b919050565b5f819050919050565b6102b7816102a5565b81146102c1575f80fd5b50565b5f813590506102d2816102ae565b92915050565b5f606082840312156102ed576102ec610219565b5b6102f7606061028b565b90505f610306848285016102c4565b5f830152506020610319848285016102c4565b602083015250604061032d848285016102c4565b60408301525092915050565b5f8060c0838503121561034f5761034e610215565b5b5f61035c858286016102d8565b925050606061036d858286016102d8565b9150509250929050565b610380816102a5565b82525050565b5f6020820190506103995f830184610377565b92915050565b6103a8816102a5565b82525050565b606082015f8201516103c25f85018261039f565b5060208201516103d5602085018261039f565b5060408201516103e8604085018261039f565b50505050565b5f6060820190506104015f8301846103ae565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61043e826102a5565b9150610449836102a5565b9250828202610457816102a5565b91507f800000000000000000000000000000000000000000000000000000000000000084145f8412161561048e5761048d610407565b5b82820584148315176104a3576104a2610407565b5b5092915050565b5f6104b4826102a5565b91506104bf836102a5565b92508282019050828112155f8312168382125f8412151617156104e5576104e4610407565b5b92915050565b5f6104f5826102a5565b9150610500836102a5565b925082820390508181125f8412168282135f85121516171561052557610524610407565b5b9291505056fea2646970667358221220af8b7afd3ad3e459f4bba026aa5c4a5f0cc2da0bf4ea6d92fb103c8e0f36726d64736f6c63430008190033