diff --git a/README.md b/README.md index ea92189..b829345 100644 --- a/README.md +++ b/README.md @@ -65,6 +65,14 @@ complexity. Source for use case examples can be found in the [examples/](https://github.com/ethpm/ethpm-spec/blob/master/examples/) directory of this repository. +Each example directory contains.. +- `1.0.0.json`: ethpm v2 manifest (deprecated) +- `1.0.0-pretty.json`: ethpm v2 manifest (pretty printed) (deprecated) +- `v3.json`: ethpm v3 manifest +- `v3-pretty.json`: ethpm v3 manifest (pretty printed) +- `contracts/`: Directory containing the source contracts for the example +- `metadata/`: Directory containing example ethpm compliant [compiler metadata output](https://solidity.readthedocs.io/en/latest/metadata.html) for each example contract + ## Specification The EthPM package manifest format is formally specified as a diff --git a/examples/escrow/metadata/escrow.json b/examples/escrow/metadata/escrow.json new file mode 100644 index 0000000..5c047d5 --- /dev/null +++ b/examples/escrow/metadata/escrow.json @@ -0,0 +1 @@ +{"compilers":[{"contractTypes":["Escrow"],"name":"solc","settings":{"evmVersion":"istanbul","libraries":{},"metadata":{"bytecodeHash":"ipfs"},"optimizer":{"enabled":true,"runs":200},"remappings":[]},"version":"0.6.8+commit.0bbfe453"}],"contractTypes":{"Escrow":{"abi":[{"inputs":[{"internalType":"address","name":"_recipient","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"recipient","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"releaseFunds","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sender","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}],"devdoc":{"author":"Piper Merriam ","methods":{"releaseFunds()":{"details":"Releases the escrowed funds to the other party."}},"title":"Contract for holding funds in escrow between two semi trusted parties."},"userdoc":{"methods":{"releaseFunds()":{"notice":"This will release the escrowed funds to the other party."}}}}},"manifest":"ethpm/3","sources":{"Escrow.sol":{"checksum":{"algorithm":"keccak256","hash":"0x1f5de85c9182f10b821606d00fbaaf95fe672c73f3eab961c83b791c7c38a31e"},"installPath":"./Escrow.sol","license":"MIT","type":"solidity","urls":["bzz-raw://456de283c50b9eaebfd1f9425f25a8f51506542e9617e3259e20d4919d923874","dweb:/ipfs/QmNLpdCi4UakwJ9rBoL7rDnEzNeA6f8uvKbiMhZVqTucu1"]},"SafeSendLib.sol":{"checksum":{"algorithm":"keccak256","hash":"0xad8a6c582251d77d022d1426e45b28c5c5609576bd0a8bf0dd6b3d36ceadb2a4"},"installPath":"./SafeSendLib.sol","license":"MIT","type":"solidity","urls":["bzz-raw://39f49be8b8939d1fd0fa855b75ad24327c09d5e72826d24f15344f7f0e805b7e","dweb:/ipfs/QmbEnqvCSAAYwQ474S1vCSBdMgdiRZ4gZWEmSmdXepXQJq"]}}} \ No newline at end of file diff --git a/examples/escrow/metadata/safe-send-lib.json b/examples/escrow/metadata/safe-send-lib.json new file mode 100644 index 0000000..35940d0 --- /dev/null +++ b/examples/escrow/metadata/safe-send-lib.json @@ -0,0 +1 @@ +{"compilers":[{"contractTypes":["SafeSendLib"],"name":"solc","settings":{"evmVersion":"istanbul","libraries":{},"metadata":{"bytecodeHash":"ipfs"},"optimizer":{"enabled":true,"runs":200},"remappings":[]},"version":"0.6.8+commit.0bbfe453"}],"contractTypes":{"SafeSendLib":{"abi":[],"devdoc":{"author":"Piper Merriam ","methods":{"sendOrThrow(address,uint256)":{"details":"Attempts to send the specified amount to the recipient throwing an error if it fails","params":{"recipient":"The address that the funds should be to.","value":"The amount in wei that should be sent."}}},"title":"Library for safe sending of ether."},"userdoc":{"methods":{}}}},"manifest":"ethpm/3","sources":{"SafeSendLib.sol":{"checksum":{"algorithm":"keccak256","hash":"0xad8a6c582251d77d022d1426e45b28c5c5609576bd0a8bf0dd6b3d36ceadb2a4"},"installPath":"./SafeSendLib.sol","license":"MIT","type":"solidity","urls":["bzz-raw://39f49be8b8939d1fd0fa855b75ad24327c09d5e72826d24f15344f7f0e805b7e","dweb:/ipfs/QmbEnqvCSAAYwQ474S1vCSBdMgdiRZ4gZWEmSmdXepXQJq"]}}} \ No newline at end of file diff --git a/examples/owned/metadata/owned.json b/examples/owned/metadata/owned.json new file mode 100644 index 0000000..5495f64 --- /dev/null +++ b/examples/owned/metadata/owned.json @@ -0,0 +1 @@ +{"compilers":[{"contractTypes":["Owned"],"name":"solc","settings":{"evmVersion":"istanbul","libraries":{},"metadata":{"bytecodeHash":"ipfs"},"optimizer":{"enabled":true,"runs":200},"remappings":[]},"version":"0.6.8+commit.0bbfe453"}],"contractTypes":{"Owned":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"}],"devdoc":{"methods":{}},"userdoc":{"methods":{}}}},"manifest":"ethpm/3","sources":{"Owned.sol":{"checksum":{"algorithm":"keccak256","hash":"0x945179c4c48e9ff8e6a387d0f109f45f35d3ba91af9eef28c9ecd3126eec44a3"},"installPath":"./Owned.sol","license":"MIT","type":"solidity","urls":["bzz-raw://4bcfddce5141a8c816b7316de4b7625147e8c84166a893deec3171196611cdfa","dweb:/ipfs/QmU8QUSt56ZoBDJgjjXvAZEPro9LmK1m2gjVG5Q4s9x29W"]}}} \ No newline at end of file diff --git a/examples/safe-math-lib/metadata/safe-math-lib.json b/examples/safe-math-lib/metadata/safe-math-lib.json new file mode 100644 index 0000000..8addf5d --- /dev/null +++ b/examples/safe-math-lib/metadata/safe-math-lib.json @@ -0,0 +1 @@ +{"compilers":[{"contractTypes":["SafeMathLib"],"name":"solc","settings":{"evmVersion":"istanbul","libraries":{},"metadata":{"bytecodeHash":"ipfs"},"optimizer":{"enabled":true,"runs":200},"remappings":[]},"version":"0.6.8+commit.0bbfe453"}],"contractTypes":{"SafeMathLib":{"abi":[{"inputs":[{"internalType":"uint256","name":"a","type":"uint256"},{"internalType":"uint256","name":"b","type":"uint256"}],"name":"safeAdd","outputs":[{"internalType":"uint256","name":"c","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"a","type":"uint256"},{"internalType":"uint256","name":"b","type":"uint256"}],"name":"safeSub","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"}],"devdoc":{"author":"Piper Merriam ","methods":{"safeAdd(uint256,uint256)":{"details":"Adds a and b, throwing an error if the operation would cause an overflow.","params":{"a":"The first number to add","b":"The second number to add"}},"safeSub(uint256,uint256)":{"details":"Subtracts b from a, throwing an error if the operation would cause an underflow.","params":{"a":"The number to be subtracted from","b":"The amount that should be subtracted"}}},"title":"Safe Math Library"},"userdoc":{"methods":{}}}},"manifest":"ethpm/3","sources":{"SafeMathLib.sol":{"checksum":{"algorithm":"keccak256","hash":"0x4d674e5734cd1451d7aca956e3d12ae273ceda8755c832b58d90969ffc6d3c17"},"installPath":"./SafeMathLib.sol","license":"MIT","type":"solidity","urls":["bzz-raw://efc0fe47747aa4139ad61d55b20efb0b2a6d9103323803b4d508481958217b7c","dweb:/ipfs/QmeyYahfHxPSoytQ2rPH2JUURin24sPvaMo6o6tKghwkAg"]}}} \ No newline at end of file diff --git a/examples/standard-token/metadata/abstract-token.json b/examples/standard-token/metadata/abstract-token.json new file mode 100644 index 0000000..bc73bdc --- /dev/null +++ b/examples/standard-token/metadata/abstract-token.json @@ -0,0 +1 @@ +{"compilers":[{"contractTypes":["Token"],"name":"solc","settings":{"evmVersion":"istanbul","libraries":{},"metadata":{"bytecodeHash":"ipfs"},"optimizer":{"enabled":true,"runs":200},"remappings":[]},"version":"0.6.8+commit.0bbfe453"}],"contractTypes":{"Token":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"remaining","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"supply","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"author":"Stefan George - ","methods":{},"title":"Abstract token contract - Functions to be implemented by token contracts."},"userdoc":{"methods":{},"notice":"Implements ERC 20 Token standard: https://github.com/ethereum/EIPs/issues/20"}}},"manifest":"ethpm/3","sources":{"AbstractToken.sol":{"checksum":{"algorithm":"keccak256","hash":"0xab42c23627c75c3fa92e6435b245fc3771c7c424c7feb4ffc99b12aeb662f997"},"installPath":"./AbstractToken.sol","license":"MIT","type":"solidity","urls":["bzz-raw://47b6603fb029c7b972bf21c1704ca628c4810634cda8eed8859afed798857c96","dweb:/ipfs/QmSBYuGKSH2veDepMbFQu3XVStYRCvuqFjUV7YCPufeHJz"]}}} \ No newline at end of file diff --git a/examples/standard-token/metadata/standard-token.json b/examples/standard-token/metadata/standard-token.json new file mode 100644 index 0000000..01030ed --- /dev/null +++ b/examples/standard-token/metadata/standard-token.json @@ -0,0 +1 @@ +{"compilers":[{"contractTypes":["StandardToken"],"name":"solc","settings":{"evmVersion":"istanbul","libraries":{},"metadata":{"bytecodeHash":"ipfs"},"optimizer":{"enabled":true,"runs":200},"remappings":[]},"version":"0.6.8+commit.0bbfe453"}],"contractTypes":{"StandardToken":{"abi":[{"inputs":[{"internalType":"uint256","name":"_totalSupply","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"remaining","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_spender","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"author":"Stefan George - ","methods":{"allowance(address,address)":{"details":"Returns number of allowed tokens for given address.","params":{"_owner":"Address of token owner.","_spender":"Address of token spender."}},"approve(address,uint256)":{"details":"Sets approved amount of tokens for spender. Returns success.","params":{"_spender":"Address of allowed account.","_value":"Number of approved tokens."}},"balanceOf(address)":{"details":"Returns number of tokens owned by given address.","params":{"_owner":"Address of token owner."}},"transfer(address,uint256)":{"details":"Transfers sender's tokens to a given address. Returns success.","params":{"_to":"Address of token receiver.","_value":"Number of tokens to transfer."}},"transferFrom(address,address,uint256)":{"details":"Allows allowed third party to transfer tokens from one address to another. Returns success.","params":{"_from":"Address from where tokens are withdrawn.","_to":"Address to where tokens are sent.","_value":"Number of tokens to transfer."}}},"title":"Standard token contract"},"userdoc":{"methods":{}}}},"manifest":"ethpm/3","sources":{"AbstractToken.sol":{"checksum":{"algorithm":"keccak256","hash":"0xab42c23627c75c3fa92e6435b245fc3771c7c424c7feb4ffc99b12aeb662f997"},"installPath":"./AbstractToken.sol","license":"MIT","type":"solidity","urls":["bzz-raw://47b6603fb029c7b972bf21c1704ca628c4810634cda8eed8859afed798857c96","dweb:/ipfs/QmSBYuGKSH2veDepMbFQu3XVStYRCvuqFjUV7YCPufeHJz"]},"StandardToken.sol":{"checksum":{"algorithm":"keccak256","hash":"0xff79ded4ad8e86320abfe51b9b98aba598ff6b071bc84cf45f4b74ec028063ca"},"installPath":"./StandardToken.sol","license":"MIT","type":"solidity","urls":["bzz-raw://f428e1fdb75ab6b33f76241a113d8cfd473a272ed7c194a6d405fbf2d835ea33","dweb:/ipfs/QmUofKBtNJVaqoSAtnHfrarJyyLm1oMUTAK4yCtnmYMJVy"]}}} \ No newline at end of file diff --git a/examples/transferable/contracts/Transferable.sol b/examples/transferable/contracts/Transferable.sol index e597ad6..2770715 100644 --- a/examples/transferable/contracts/Transferable.sol +++ b/examples/transferable/contracts/Transferable.sol @@ -1,7 +1,7 @@ // SPDX-License-Identifier: MIT pragma solidity ^0.6.8; -import {Owned} from "owned/contracts/Owned.sol"; +import {Owned} from "owned/Owned.sol"; contract Transferable is Owned { event OwnerChanged(address indexed prevOwner, address indexed newOwner); diff --git a/examples/transferable/metadata/owned.json b/examples/transferable/metadata/owned.json new file mode 100644 index 0000000..7d58c10 --- /dev/null +++ b/examples/transferable/metadata/owned.json @@ -0,0 +1 @@ +{"compilers":[{"contractTypes":["Owned"],"name":"solc","settings":{"evmVersion":"istanbul","libraries":{},"metadata":{"bytecodeHash":"ipfs"},"optimizer":{"enabled":true,"runs":200},"remappings":[]},"version":"0.6.8+commit.0bbfe453"}],"contractTypes":{"Owned":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"}],"devdoc":{"methods":{}},"userdoc":{"methods":{}}}},"manifest":"ethpm/3","sources":{"owned/Owned.sol":{"checksum":{"algorithm":"keccak256","hash":"0x945179c4c48e9ff8e6a387d0f109f45f35d3ba91af9eef28c9ecd3126eec44a3"},"installPath":"./owned/Owned.sol","license":"MIT","type":"solidity","urls":["bzz-raw://4bcfddce5141a8c816b7316de4b7625147e8c84166a893deec3171196611cdfa","dweb:/ipfs/QmU8QUSt56ZoBDJgjjXvAZEPro9LmK1m2gjVG5Q4s9x29W"]}}} \ No newline at end of file diff --git a/examples/transferable/metadata/transferable.json b/examples/transferable/metadata/transferable.json new file mode 100644 index 0000000..854adde --- /dev/null +++ b/examples/transferable/metadata/transferable.json @@ -0,0 +1 @@ +{"compilers":[{"contractTypes":["Transferable"],"name":"solc","settings":{"evmVersion":"istanbul","libraries":{},"metadata":{"bytecodeHash":"ipfs"},"optimizer":{"enabled":true,"runs":200},"remappings":[]},"version":"0.6.8+commit.0bbfe453"}],"contractTypes":{"Transferable":{"abi":[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"prevOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnerChanged","type":"event"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"methods":{}},"userdoc":{"methods":{}}}},"manifest":"ethpm/3","sources":{"Transferable.sol":{"checksum":{"algorithm":"keccak256","hash":"0x0c96a155eed70772ce4500af8b4f9d63713ef6136f65a98b038236390a7d4e94"},"installPath":"./Transferable.sol","license":"MIT","type":"solidity","urls":["bzz-raw://97326467c62e74567c3000fbb436c6528f5c956666a28a81a266c31b72dfad20","dweb:/ipfs/QmVrpBNDizFkkYiD5NQtEy15VGgEGycBbEBRRax2HifucM"]},"owned/Owned.sol":{"checksum":{"algorithm":"keccak256","hash":"0x945179c4c48e9ff8e6a387d0f109f45f35d3ba91af9eef28c9ecd3126eec44a3"},"installPath":"./owned/Owned.sol","license":"MIT","type":"solidity","urls":["bzz-raw://4bcfddce5141a8c816b7316de4b7625147e8c84166a893deec3171196611cdfa","dweb:/ipfs/QmU8QUSt56ZoBDJgjjXvAZEPro9LmK1m2gjVG5Q4s9x29W"]}}} \ No newline at end of file diff --git a/examples/transferable/v3-pretty.json b/examples/transferable/v3-pretty.json index f626aaf..bef8caa 100644 --- a/examples/transferable/v3-pretty.json +++ b/examples/transferable/v3-pretty.json @@ -17,7 +17,7 @@ "type": "solidity", "installPath": "./Transferable.sol", "urls": [ - "ipfs://QmdWB74Ca8tyXtS3UxzJqcvETv3LLkacX2ywfJfNNWVnYt" + "ipfs://QmVrpBNDizFkkYiD5NQtEy15VGgEGycBbEBRRax2HifucM" ] } }, diff --git a/examples/transferable/v3.json b/examples/transferable/v3.json index 5f2c417..1248110 100644 --- a/examples/transferable/v3.json +++ b/examples/transferable/v3.json @@ -1 +1 @@ -{"buildDependencies":{"owned":"ipfs://QmcxvhkJJVpbxEAa6cgW3B6XwPJb79w9GpNUv2P2THUzZR"},"manifest":"ethpm/3","meta":{"authors":["Piper Merriam "],"description":"Reusable contracts which implement a privileged 'owner' model for authorization with functionality for transfering ownership.","keywords":["authorization"],"license":"MIT"},"name":"transferable","sources":{"Transferable.sol":{"installPath":"./Transferable.sol","type":"solidity","urls":["ipfs://QmdWB74Ca8tyXtS3UxzJqcvETv3LLkacX2ywfJfNNWVnYt"]}},"version":"1.0.0"} \ No newline at end of file +{"buildDependencies":{"owned":"ipfs://QmcxvhkJJVpbxEAa6cgW3B6XwPJb79w9GpNUv2P2THUzZR"},"manifest":"ethpm/3","meta":{"authors":["Piper Merriam "],"description":"Reusable contracts which implement a privileged 'owner' model for authorization with functionality for transfering ownership.","keywords":["authorization"],"license":"MIT"},"name":"transferable","sources":{"Transferable.sol":{"installPath":"./Transferable.sol","type":"solidity","urls":["ipfs://QmVrpBNDizFkkYiD5NQtEy15VGgEGycBbEBRRax2HifucM"]}},"version":"1.0.0"} \ No newline at end of file diff --git a/examples/wallet-with-send/contracts/WalletWithSend.sol b/examples/wallet-with-send/contracts/WalletWithSend.sol index 00cecd6..905a857 100644 --- a/examples/wallet-with-send/contracts/WalletWithSend.sol +++ b/examples/wallet-with-send/contracts/WalletWithSend.sol @@ -2,7 +2,7 @@ pragma solidity ^0.6.8; -import {Wallet} from "./wallet/contracts/Wallet.sol"; +import {Wallet} from "./wallet/Wallet.sol"; /// @title Wallet contract with simple send and approval spending functionality diff --git a/examples/wallet-with-send/metadata/owned.json b/examples/wallet-with-send/metadata/owned.json new file mode 100644 index 0000000..6b1ae3e --- /dev/null +++ b/examples/wallet-with-send/metadata/owned.json @@ -0,0 +1 @@ +{"compilers":[{"contractTypes":["Owned"],"name":"solc","settings":{"evmVersion":"istanbul","libraries":{},"metadata":{"bytecodeHash":"ipfs"},"optimizer":{"enabled":true,"runs":200},"remappings":[]},"version":"0.6.8+commit.0bbfe453"}],"contractTypes":{"Owned":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"}],"devdoc":{"methods":{}},"userdoc":{"methods":{}}}},"manifest":"ethpm/3","sources":{"wallet/owned/Owned.sol":{"checksum":{"algorithm":"keccak256","hash":"0x945179c4c48e9ff8e6a387d0f109f45f35d3ba91af9eef28c9ecd3126eec44a3"},"installPath":"./wallet/owned/Owned.sol","license":"MIT","type":"solidity","urls":["bzz-raw://4bcfddce5141a8c816b7316de4b7625147e8c84166a893deec3171196611cdfa","dweb:/ipfs/QmU8QUSt56ZoBDJgjjXvAZEPro9LmK1m2gjVG5Q4s9x29W"]}}} \ No newline at end of file diff --git a/examples/wallet-with-send/metadata/safe-math-lib.json b/examples/wallet-with-send/metadata/safe-math-lib.json new file mode 100644 index 0000000..dbd2a2d --- /dev/null +++ b/examples/wallet-with-send/metadata/safe-math-lib.json @@ -0,0 +1 @@ +{"compilers":[{"contractTypes":["SafeMathLib"],"name":"solc","settings":{"evmVersion":"istanbul","libraries":{},"metadata":{"bytecodeHash":"ipfs"},"optimizer":{"enabled":true,"runs":200},"remappings":[]},"version":"0.6.8+commit.0bbfe453"}],"contractTypes":{"SafeMathLib":{"abi":[{"inputs":[{"internalType":"uint256","name":"a","type":"uint256"},{"internalType":"uint256","name":"b","type":"uint256"}],"name":"safeAdd","outputs":[{"internalType":"uint256","name":"c","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"a","type":"uint256"},{"internalType":"uint256","name":"b","type":"uint256"}],"name":"safeSub","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"}],"devdoc":{"author":"Piper Merriam ","methods":{"safeAdd(uint256,uint256)":{"details":"Adds a and b, throwing an error if the operation would cause an overflow.","params":{"a":"The first number to add","b":"The second number to add"}},"safeSub(uint256,uint256)":{"details":"Subtracts b from a, throwing an error if the operation would cause an underflow.","params":{"a":"The number to be subtracted from","b":"The amount that should be subtracted"}}},"title":"Safe Math Library"},"userdoc":{"methods":{}}}},"manifest":"ethpm/3","sources":{"wallet/safe-math-lib/SafeMathLib.sol":{"checksum":{"algorithm":"keccak256","hash":"0x4d674e5734cd1451d7aca956e3d12ae273ceda8755c832b58d90969ffc6d3c17"},"installPath":"./wallet/safe-math-lib/SafeMathLib.sol","license":"MIT","type":"solidity","urls":["bzz-raw://efc0fe47747aa4139ad61d55b20efb0b2a6d9103323803b4d508481958217b7c","dweb:/ipfs/QmeyYahfHxPSoytQ2rPH2JUURin24sPvaMo6o6tKghwkAg"]}}} \ No newline at end of file diff --git a/examples/wallet-with-send/metadata/wallet-with-send.json b/examples/wallet-with-send/metadata/wallet-with-send.json new file mode 100644 index 0000000..0744af3 --- /dev/null +++ b/examples/wallet-with-send/metadata/wallet-with-send.json @@ -0,0 +1 @@ +{"compilers":[{"contractTypes":["WalletWithSend"],"name":"solc","settings":{"evmVersion":"istanbul","libraries":{},"metadata":{"bytecodeHash":"ipfs"},"optimizer":{"enabled":true,"runs":200},"remappings":[]},"version":"0.6.8+commit.0bbfe453"}],"contractTypes":{"WalletWithSend":{"abi":[{"stateMutability":"nonpayable","type":"fallback"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"address payable","name":"to","type":"address"}],"name":"approvedSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"recipient","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"send","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"withdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"author":"Piper Merriam ","methods":{"approve(address,uint256)":{"details":"Sets recipient to be approved to withdraw the specified amount"},"approvedSend(uint256,address)":{"details":"Sends funds that have been approved to the specified address"},"send(address,uint256)":{"details":"Sends the recipient the specified amount"},"withdraw(uint256)":{"details":"Lets caller withdraw up to their approved amount"}},"title":"Wallet contract with simple send and approval spending functionality"},"userdoc":{"methods":{"approve(address,uint256)":{"notice":"This will set the recipient to be approved to withdraw the specified amount."},"approvedSend(uint256,address)":{"notice":"This will send the reciepient the specified amount."},"send(address,uint256)":{"notice":"This will send the reciepient the specified amount."},"withdraw(uint256)":{"notice":"This will withdraw provided value, deducting it from your total allowance."}}}}},"manifest":"ethpm/3","sources":{"WalletWithSend.sol":{"checksum":{"algorithm":"keccak256","hash":"0x68f8383e089c3323c3cf48bb2a042e6ea08d0bf6f60915de3ca6d017f1ad2ebc"},"installPath":"./WalletWithSend.sol","license":"MIT","type":"solidity","urls":["bzz-raw://7444f04135c159baa300bd38e82c08b0ae3389cb1d0826745f315f880e1ec27d","dweb:/ipfs/QmPLAfssK4y4AjHvLimxGNBRAc5xmGFVx3Tf7dekPKuVUo"]},"wallet/Wallet.sol":{"checksum":{"algorithm":"keccak256","hash":"0x7de686546c0b7ca4bbd1d703b385146f5103d306e0106b2b21e7368cf69b9ea4"},"installPath":"./wallet/Wallet.sol","license":"MIT","type":"solidity","urls":["bzz-raw://f9d81f0e16672c70fbf0732a212dcafebf92a53c6bbb534a6350268d602594d6","dweb:/ipfs/QmVZdqQfZG5TMArijGik6eFEnwsiBmqnAYaqWBCEpUjtUN"]},"wallet/owned/Owned.sol":{"checksum":{"algorithm":"keccak256","hash":"0x945179c4c48e9ff8e6a387d0f109f45f35d3ba91af9eef28c9ecd3126eec44a3"},"installPath":"./wallet/owned/Owned.sol","license":"MIT","type":"solidity","urls":["bzz-raw://4bcfddce5141a8c816b7316de4b7625147e8c84166a893deec3171196611cdfa","dweb:/ipfs/QmU8QUSt56ZoBDJgjjXvAZEPro9LmK1m2gjVG5Q4s9x29W"]},"wallet/safe-math-lib/SafeMathLib.sol":{"checksum":{"algorithm":"keccak256","hash":"0x4d674e5734cd1451d7aca956e3d12ae273ceda8755c832b58d90969ffc6d3c17"},"installPath":"./wallet/safe-math-lib/SafeMathLib.sol","license":"MIT","type":"solidity","urls":["bzz-raw://efc0fe47747aa4139ad61d55b20efb0b2a6d9103323803b4d508481958217b7c","dweb:/ipfs/QmeyYahfHxPSoytQ2rPH2JUURin24sPvaMo6o6tKghwkAg"]}}} \ No newline at end of file diff --git a/examples/wallet-with-send/metadata/wallet.json b/examples/wallet-with-send/metadata/wallet.json new file mode 100644 index 0000000..fe8ce30 --- /dev/null +++ b/examples/wallet-with-send/metadata/wallet.json @@ -0,0 +1 @@ +{"compilers":[{"contractTypes":["Wallet"],"name":"solc","settings":{"evmVersion":"istanbul","libraries":{},"metadata":{"bytecodeHash":"ipfs"},"optimizer":{"enabled":true,"runs":200},"remappings":[]},"version":"0.6.8+commit.0bbfe453"}],"contractTypes":{"Wallet":{"abi":[{"stateMutability":"nonpayable","type":"fallback"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"recipient","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"send","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"withdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"author":"Piper Merriam ","methods":{"approve(address,uint256)":{"details":"Sets recipient to be approved to withdraw the specified amount"},"send(address,uint256)":{"details":"Sends the recipient the specified amount"},"withdraw(uint256)":{"details":"Lets caller withdraw up to their approved amount"}},"title":"Contract for holding funds in escrow between two semi trusted parties."},"userdoc":{"methods":{"approve(address,uint256)":{"notice":"This will set the recipient to be approved to withdraw the specified amount."},"send(address,uint256)":{"notice":"This will send the reciepient the specified amount."},"withdraw(uint256)":{"notice":"This will withdraw provided value, deducting it from your total allowance."}}}}},"manifest":"ethpm/3","sources":{"wallet/Wallet.sol":{"checksum":{"algorithm":"keccak256","hash":"0x7de686546c0b7ca4bbd1d703b385146f5103d306e0106b2b21e7368cf69b9ea4"},"installPath":"./wallet/Wallet.sol","license":"MIT","type":"solidity","urls":["bzz-raw://f9d81f0e16672c70fbf0732a212dcafebf92a53c6bbb534a6350268d602594d6","dweb:/ipfs/QmVZdqQfZG5TMArijGik6eFEnwsiBmqnAYaqWBCEpUjtUN"]},"wallet/owned/Owned.sol":{"checksum":{"algorithm":"keccak256","hash":"0x945179c4c48e9ff8e6a387d0f109f45f35d3ba91af9eef28c9ecd3126eec44a3"},"installPath":"./wallet/owned/Owned.sol","license":"MIT","type":"solidity","urls":["bzz-raw://4bcfddce5141a8c816b7316de4b7625147e8c84166a893deec3171196611cdfa","dweb:/ipfs/QmU8QUSt56ZoBDJgjjXvAZEPro9LmK1m2gjVG5Q4s9x29W"]},"wallet/safe-math-lib/SafeMathLib.sol":{"checksum":{"algorithm":"keccak256","hash":"0x4d674e5734cd1451d7aca956e3d12ae273ceda8755c832b58d90969ffc6d3c17"},"installPath":"./wallet/safe-math-lib/SafeMathLib.sol","license":"MIT","type":"solidity","urls":["bzz-raw://efc0fe47747aa4139ad61d55b20efb0b2a6d9103323803b4d508481958217b7c","dweb:/ipfs/QmeyYahfHxPSoytQ2rPH2JUURin24sPvaMo6o6tKghwkAg"]}}} \ No newline at end of file diff --git a/examples/wallet-with-send/v3-pretty.json b/examples/wallet-with-send/v3-pretty.json index 1ef10d4..389d2d5 100644 --- a/examples/wallet-with-send/v3-pretty.json +++ b/examples/wallet-with-send/v3-pretty.json @@ -7,7 +7,7 @@ "type": "solidity", "installPath": "./WalletWithSend.sol", "urls": [ - "ipfs://QmQmKim8MpVGgkaJzHCAWkAJnr3hPLrUXmaz5Ao1gWjxNY" + "ipfs://QmPLAfssK4y4AjHvLimxGNBRAc5xmGFVx3Tf7dekPKuVUo" ] } }, @@ -202,6 +202,6 @@ } }, "buildDependencies": { - "wallet": "ipfs://QmRALeFkttSr6DLmPiNtAqLcMJYXu4BK3SjZGVgW8VASnm" + "wallet": "ipfs://QmPtZxv9uEtr671XVjevHDacP9M4Tw9T7p6n1MS1xdyMeC" } } diff --git a/examples/wallet-with-send/v3.json b/examples/wallet-with-send/v3.json index 7448633..f998bb0 100644 --- a/examples/wallet-with-send/v3.json +++ b/examples/wallet-with-send/v3.json @@ -1 +1 @@ -{"buildDependencies":{"wallet":"ipfs://QmRALeFkttSr6DLmPiNtAqLcMJYXu4BK3SjZGVgW8VASnm"},"compilers":[{"contractTypes":["WalletWithSend"],"name":"solc","settings":{"optimize":false},"version":"0.6.8+commit.0bbfe453"}],"contractTypes":{"WalletWithSend":{"abi":[{"stateMutability":"nonpayable","type":"fallback"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"address payable","name":"to","type":"address"}],"name":"approvedSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"recipient","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"send","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"withdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"deploymentBytecode":{"bytecode":"0x608060405234801561001057600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506105e1806100606000396000f3fe608060405234801561001057600080fd5b50600436106100505760003560e01c8063095ea7b3146100535780632e1a7d4d146100b9578063c577ff8b146100ff578063d0679d341461014d57610051565b5b005b61009f6004803603604081101561006957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506101b3565b604051808215151515815260200191505060405180910390f35b6100e5600480360360208110156100cf57600080fd5b810190808035906020019092919050505061025c565b604051808215151515815260200191505060405180910390f35b61014b6004803603604081101561011557600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506103bb565b005b6101996004803603604081101561016357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610513565b604051808215151515815260200191505060405180910390f35b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461020e57600080fd5b81600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001905092915050565b6000600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205473000000000000000000000000000000000000000063a293d1e89091846040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b1580156102f657600080fd5b505af415801561030a573d6000803e3d6000fd5b505050506040513d602081101561032057600080fd5b8101908080519060200190929190505050600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f193505050506103b257600080fd5b60019050919050565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205473000000000000000000000000000000000000000063a293d1e89091846040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561045357600080fd5b505af4158015610467573d6000803e3d6000fd5b505050506040513d602081101561047d57600080fd5b8101908080519060200190929190505050600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508073ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f1935050505061050f57600080fd5b5050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461056e57600080fd5b8273ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f1935050505090509291505056fea2646970667358221220b3e9d35017f06ad00bdc4a7887a8d810719509dbab16e308d48e0a800d95d90e64736f6c63430006080033","linkReferences":[{"length":20,"name":"wallet:safe-math-lib:SafeMathLib","offsets":[768,1117]}]},"devdoc":{"author":"Piper Merriam ","methods":{"approve(address,uint256)":{"details":"Sets recipient to be approved to withdraw the specified amount"},"approvedSend(uint256,address)":{"details":"Sends funds that have been approved to the specified address"},"send(address,uint256)":{"details":"Sends the recipient the specified amount"},"withdraw(uint256)":{"details":"Lets caller withdraw up to their approved amount"}},"title":"Wallet contract with simple send and approval spending functionality"},"runtimeBytecode":{"bytecode":"0x608060405234801561001057600080fd5b50600436106100505760003560e01c8063095ea7b3146100535780632e1a7d4d146100b9578063c577ff8b146100ff578063d0679d341461014d57610051565b5b005b61009f6004803603604081101561006957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506101b3565b604051808215151515815260200191505060405180910390f35b6100e5600480360360208110156100cf57600080fd5b810190808035906020019092919050505061025c565b604051808215151515815260200191505060405180910390f35b61014b6004803603604081101561011557600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506103bb565b005b6101996004803603604081101561016357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610513565b604051808215151515815260200191505060405180910390f35b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461020e57600080fd5b81600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001905092915050565b6000600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205473000000000000000000000000000000000000000063a293d1e89091846040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b1580156102f657600080fd5b505af415801561030a573d6000803e3d6000fd5b505050506040513d602081101561032057600080fd5b8101908080519060200190929190505050600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f193505050506103b257600080fd5b60019050919050565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205473000000000000000000000000000000000000000063a293d1e89091846040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561045357600080fd5b505af4158015610467573d6000803e3d6000fd5b505050506040513d602081101561047d57600080fd5b8101908080519060200190929190505050600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508073ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f1935050505061050f57600080fd5b5050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461056e57600080fd5b8273ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f1935050505090509291505056fea2646970667358221220b3e9d35017f06ad00bdc4a7887a8d810719509dbab16e308d48e0a800d95d90e64736f6c63430006080033","linkReferences":[{"length":20,"name":"wallet:safe-math-lib:SafeMathLib","offsets":[672,1021]}]},"sourceId":"WalletWithSend.sol","userdoc":{"methods":{"approve(address,uint256)":{"notice":"This will set the recipient to be approved to withdraw the specified amount."},"approvedSend(uint256,address)":{"notice":"This will send the reciepient the specified amount."},"send(address,uint256)":{"notice":"This will send the reciepient the specified amount."},"withdraw(uint256)":{"notice":"This will withdraw provided value, deducting it from your total allowance."}}}}},"deployments":{"blockchain://41941023680923e0fe4d74a34bdac8141f2540e3ae90623718e47d66d1ca4a2d/block/b6d0d43f61e5e36d20eb3d5caca12220b024ed2861a814795d1fd6596fe041bf":{"Wallet":{"address":"0x4308223cdec48F8a396Ba206025b39caD11cacE6","block":"0x48ed49ff47ecf433d7c8f1847ddae8c1250ad948fda22342f78f732823534780","contractType":"WalletWithSend","runtimeBytecode":{"linkDependencies":[{"offsets":[672,1021],"type":"reference","value":"wallet:safe-math-lib:SafeMathLib"}]},"transaction":"0xc1bdfc5eeb517aabb3b65cb24f8d0cd3fd4b8d71f94f90f3e76250cbb96b5369"}}},"manifest":"ethpm/3","name":"wallet-with-send","sources":{"WalletWithSend.sol":{"installPath":"./WalletWithSend.sol","type":"solidity","urls":["ipfs://QmQmKim8MpVGgkaJzHCAWkAJnr3hPLrUXmaz5Ao1gWjxNY"]}},"version":"1.0.0"} \ No newline at end of file +{"buildDependencies":{"wallet":"ipfs://QmPtZxv9uEtr671XVjevHDacP9M4Tw9T7p6n1MS1xdyMeC"},"compilers":[{"contractTypes":["WalletWithSend"],"name":"solc","settings":{"optimize":false},"version":"0.6.8+commit.0bbfe453"}],"contractTypes":{"WalletWithSend":{"abi":[{"stateMutability":"nonpayable","type":"fallback"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"address payable","name":"to","type":"address"}],"name":"approvedSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"recipient","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"send","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"withdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"deploymentBytecode":{"bytecode":"0x608060405234801561001057600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506105e1806100606000396000f3fe608060405234801561001057600080fd5b50600436106100505760003560e01c8063095ea7b3146100535780632e1a7d4d146100b9578063c577ff8b146100ff578063d0679d341461014d57610051565b5b005b61009f6004803603604081101561006957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506101b3565b604051808215151515815260200191505060405180910390f35b6100e5600480360360208110156100cf57600080fd5b810190808035906020019092919050505061025c565b604051808215151515815260200191505060405180910390f35b61014b6004803603604081101561011557600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506103bb565b005b6101996004803603604081101561016357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610513565b604051808215151515815260200191505060405180910390f35b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461020e57600080fd5b81600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001905092915050565b6000600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205473000000000000000000000000000000000000000063a293d1e89091846040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b1580156102f657600080fd5b505af415801561030a573d6000803e3d6000fd5b505050506040513d602081101561032057600080fd5b8101908080519060200190929190505050600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f193505050506103b257600080fd5b60019050919050565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205473000000000000000000000000000000000000000063a293d1e89091846040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561045357600080fd5b505af4158015610467573d6000803e3d6000fd5b505050506040513d602081101561047d57600080fd5b8101908080519060200190929190505050600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508073ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f1935050505061050f57600080fd5b5050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461056e57600080fd5b8273ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f1935050505090509291505056fea2646970667358221220b3e9d35017f06ad00bdc4a7887a8d810719509dbab16e308d48e0a800d95d90e64736f6c63430006080033","linkReferences":[{"length":20,"name":"wallet:safe-math-lib:SafeMathLib","offsets":[768,1117]}]},"devdoc":{"author":"Piper Merriam ","methods":{"approve(address,uint256)":{"details":"Sets recipient to be approved to withdraw the specified amount"},"approvedSend(uint256,address)":{"details":"Sends funds that have been approved to the specified address"},"send(address,uint256)":{"details":"Sends the recipient the specified amount"},"withdraw(uint256)":{"details":"Lets caller withdraw up to their approved amount"}},"title":"Wallet contract with simple send and approval spending functionality"},"runtimeBytecode":{"bytecode":"0x608060405234801561001057600080fd5b50600436106100505760003560e01c8063095ea7b3146100535780632e1a7d4d146100b9578063c577ff8b146100ff578063d0679d341461014d57610051565b5b005b61009f6004803603604081101561006957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506101b3565b604051808215151515815260200191505060405180910390f35b6100e5600480360360208110156100cf57600080fd5b810190808035906020019092919050505061025c565b604051808215151515815260200191505060405180910390f35b61014b6004803603604081101561011557600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506103bb565b005b6101996004803603604081101561016357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610513565b604051808215151515815260200191505060405180910390f35b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461020e57600080fd5b81600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001905092915050565b6000600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205473000000000000000000000000000000000000000063a293d1e89091846040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b1580156102f657600080fd5b505af415801561030a573d6000803e3d6000fd5b505050506040513d602081101561032057600080fd5b8101908080519060200190929190505050600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f193505050506103b257600080fd5b60019050919050565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205473000000000000000000000000000000000000000063a293d1e89091846040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561045357600080fd5b505af4158015610467573d6000803e3d6000fd5b505050506040513d602081101561047d57600080fd5b8101908080519060200190929190505050600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508073ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f1935050505061050f57600080fd5b5050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461056e57600080fd5b8273ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f1935050505090509291505056fea2646970667358221220b3e9d35017f06ad00bdc4a7887a8d810719509dbab16e308d48e0a800d95d90e64736f6c63430006080033","linkReferences":[{"length":20,"name":"wallet:safe-math-lib:SafeMathLib","offsets":[672,1021]}]},"sourceId":"WalletWithSend.sol","userdoc":{"methods":{"approve(address,uint256)":{"notice":"This will set the recipient to be approved to withdraw the specified amount."},"approvedSend(uint256,address)":{"notice":"This will send the reciepient the specified amount."},"send(address,uint256)":{"notice":"This will send the reciepient the specified amount."},"withdraw(uint256)":{"notice":"This will withdraw provided value, deducting it from your total allowance."}}}}},"deployments":{"blockchain://41941023680923e0fe4d74a34bdac8141f2540e3ae90623718e47d66d1ca4a2d/block/b6d0d43f61e5e36d20eb3d5caca12220b024ed2861a814795d1fd6596fe041bf":{"Wallet":{"address":"0x4308223cdec48F8a396Ba206025b39caD11cacE6","block":"0x48ed49ff47ecf433d7c8f1847ddae8c1250ad948fda22342f78f732823534780","contractType":"WalletWithSend","runtimeBytecode":{"linkDependencies":[{"offsets":[672,1021],"type":"reference","value":"wallet:safe-math-lib:SafeMathLib"}]},"transaction":"0xc1bdfc5eeb517aabb3b65cb24f8d0cd3fd4b8d71f94f90f3e76250cbb96b5369"}}},"manifest":"ethpm/3","name":"wallet-with-send","sources":{"WalletWithSend.sol":{"installPath":"./WalletWithSend.sol","type":"solidity","urls":["ipfs://QmPLAfssK4y4AjHvLimxGNBRAc5xmGFVx3Tf7dekPKuVUo"]}},"version":"1.0.0"} \ No newline at end of file diff --git a/examples/wallet/contracts/Wallet.sol b/examples/wallet/contracts/Wallet.sol index 35e0ea2..d8d2062 100644 --- a/examples/wallet/contracts/Wallet.sol +++ b/examples/wallet/contracts/Wallet.sol @@ -2,8 +2,8 @@ pragma solidity ^0.6.8; -import {SafeMathLib} from "./safe-math-lib/contracts/SafeMathLib.sol"; -import {Owned} from "./owned/contracts/Owned.sol"; +import {SafeMathLib} from "./safe-math-lib/SafeMathLib.sol"; +import {Owned} from "./owned/Owned.sol"; /// @title Contract for holding funds in escrow between two semi trusted parties. diff --git a/examples/wallet/metadata/owned.json b/examples/wallet/metadata/owned.json new file mode 100644 index 0000000..7d58c10 --- /dev/null +++ b/examples/wallet/metadata/owned.json @@ -0,0 +1 @@ +{"compilers":[{"contractTypes":["Owned"],"name":"solc","settings":{"evmVersion":"istanbul","libraries":{},"metadata":{"bytecodeHash":"ipfs"},"optimizer":{"enabled":true,"runs":200},"remappings":[]},"version":"0.6.8+commit.0bbfe453"}],"contractTypes":{"Owned":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"}],"devdoc":{"methods":{}},"userdoc":{"methods":{}}}},"manifest":"ethpm/3","sources":{"owned/Owned.sol":{"checksum":{"algorithm":"keccak256","hash":"0x945179c4c48e9ff8e6a387d0f109f45f35d3ba91af9eef28c9ecd3126eec44a3"},"installPath":"./owned/Owned.sol","license":"MIT","type":"solidity","urls":["bzz-raw://4bcfddce5141a8c816b7316de4b7625147e8c84166a893deec3171196611cdfa","dweb:/ipfs/QmU8QUSt56ZoBDJgjjXvAZEPro9LmK1m2gjVG5Q4s9x29W"]}}} \ No newline at end of file diff --git a/examples/wallet/metadata/safe-math-lib.json b/examples/wallet/metadata/safe-math-lib.json new file mode 100644 index 0000000..d81870c --- /dev/null +++ b/examples/wallet/metadata/safe-math-lib.json @@ -0,0 +1 @@ +{"compilers":[{"contractTypes":["SafeMathLib"],"name":"solc","settings":{"evmVersion":"istanbul","libraries":{},"metadata":{"bytecodeHash":"ipfs"},"optimizer":{"enabled":true,"runs":200},"remappings":[]},"version":"0.6.8+commit.0bbfe453"}],"contractTypes":{"SafeMathLib":{"abi":[{"inputs":[{"internalType":"uint256","name":"a","type":"uint256"},{"internalType":"uint256","name":"b","type":"uint256"}],"name":"safeAdd","outputs":[{"internalType":"uint256","name":"c","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"a","type":"uint256"},{"internalType":"uint256","name":"b","type":"uint256"}],"name":"safeSub","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"}],"devdoc":{"author":"Piper Merriam ","methods":{"safeAdd(uint256,uint256)":{"details":"Adds a and b, throwing an error if the operation would cause an overflow.","params":{"a":"The first number to add","b":"The second number to add"}},"safeSub(uint256,uint256)":{"details":"Subtracts b from a, throwing an error if the operation would cause an underflow.","params":{"a":"The number to be subtracted from","b":"The amount that should be subtracted"}}},"title":"Safe Math Library"},"userdoc":{"methods":{}}}},"manifest":"ethpm/3","sources":{"safe-math-lib/SafeMathLib.sol":{"checksum":{"algorithm":"keccak256","hash":"0x4d674e5734cd1451d7aca956e3d12ae273ceda8755c832b58d90969ffc6d3c17"},"installPath":"./safe-math-lib/SafeMathLib.sol","license":"MIT","type":"solidity","urls":["bzz-raw://efc0fe47747aa4139ad61d55b20efb0b2a6d9103323803b4d508481958217b7c","dweb:/ipfs/QmeyYahfHxPSoytQ2rPH2JUURin24sPvaMo6o6tKghwkAg"]}}} \ No newline at end of file diff --git a/examples/wallet/metadata/wallet.json b/examples/wallet/metadata/wallet.json new file mode 100644 index 0000000..60fdfaa --- /dev/null +++ b/examples/wallet/metadata/wallet.json @@ -0,0 +1 @@ +{"compilers":[{"contractTypes":["Wallet"],"name":"solc","settings":{"evmVersion":"istanbul","libraries":{},"metadata":{"bytecodeHash":"ipfs"},"optimizer":{"enabled":true,"runs":200},"remappings":[]},"version":"0.6.8+commit.0bbfe453"}],"contractTypes":{"Wallet":{"abi":[{"stateMutability":"nonpayable","type":"fallback"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"recipient","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"send","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"withdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"devdoc":{"author":"Piper Merriam ","methods":{"approve(address,uint256)":{"details":"Sets recipient to be approved to withdraw the specified amount"},"send(address,uint256)":{"details":"Sends the recipient the specified amount"},"withdraw(uint256)":{"details":"Lets caller withdraw up to their approved amount"}},"title":"Contract for holding funds in escrow between two semi trusted parties."},"userdoc":{"methods":{"approve(address,uint256)":{"notice":"This will set the recipient to be approved to withdraw the specified amount."},"send(address,uint256)":{"notice":"This will send the reciepient the specified amount."},"withdraw(uint256)":{"notice":"This will withdraw provided value, deducting it from your total allowance."}}}}},"manifest":"ethpm/3","sources":{"Wallet.sol":{"checksum":{"algorithm":"keccak256","hash":"0x7de686546c0b7ca4bbd1d703b385146f5103d306e0106b2b21e7368cf69b9ea4"},"installPath":"./Wallet.sol","license":"MIT","type":"solidity","urls":["bzz-raw://f9d81f0e16672c70fbf0732a212dcafebf92a53c6bbb534a6350268d602594d6","dweb:/ipfs/QmVZdqQfZG5TMArijGik6eFEnwsiBmqnAYaqWBCEpUjtUN"]},"owned/Owned.sol":{"checksum":{"algorithm":"keccak256","hash":"0x945179c4c48e9ff8e6a387d0f109f45f35d3ba91af9eef28c9ecd3126eec44a3"},"installPath":"./owned/Owned.sol","license":"MIT","type":"solidity","urls":["bzz-raw://4bcfddce5141a8c816b7316de4b7625147e8c84166a893deec3171196611cdfa","dweb:/ipfs/QmU8QUSt56ZoBDJgjjXvAZEPro9LmK1m2gjVG5Q4s9x29W"]},"safe-math-lib/SafeMathLib.sol":{"checksum":{"algorithm":"keccak256","hash":"0x4d674e5734cd1451d7aca956e3d12ae273ceda8755c832b58d90969ffc6d3c17"},"installPath":"./safe-math-lib/SafeMathLib.sol","license":"MIT","type":"solidity","urls":["bzz-raw://efc0fe47747aa4139ad61d55b20efb0b2a6d9103323803b4d508481958217b7c","dweb:/ipfs/QmeyYahfHxPSoytQ2rPH2JUURin24sPvaMo6o6tKghwkAg"]}}} \ No newline at end of file diff --git a/examples/wallet/v3-pretty.json b/examples/wallet/v3-pretty.json index 1bc598d..0cbd403 100644 --- a/examples/wallet/v3-pretty.json +++ b/examples/wallet/v3-pretty.json @@ -7,7 +7,7 @@ "type": "solidity", "installPath": "./Wallet.sol", "urls": [ - "ipfs://QmfTZzHLSShTS1woD7JNszAyhjtS7ErFDT4QmtwEQQ1qpa" + "ipfs://QmVZdqQfZG5TMArijGik6eFEnwsiBmqnAYaqWBCEpUjtUN" ] } }, diff --git a/examples/wallet/v3.json b/examples/wallet/v3.json index 25d0e37..fdd33b9 100644 --- a/examples/wallet/v3.json +++ b/examples/wallet/v3.json @@ -1 +1 @@ -{"buildDependencies":{"owned":"ipfs://QmcxvhkJJVpbxEAa6cgW3B6XwPJb79w9GpNUv2P2THUzZR","safe-math-lib":"ipfs://QmWnPsiS3Xb8GvCDEBFnnKs8Yk4HaAX6rCqJAaQXGbCoPk"},"compilers":[{"contractTypes":["Wallet"],"name":"solc","settings":{"optimize":false},"version":"0.6.8+commit.0bbfe453"}],"contractTypes":{"Wallet":{"abi":[{"stateMutability":"nonpayable","type":"fallback"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"recipient","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"send","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"withdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"deploymentBytecode":{"bytecode":"0x608060405234801561001057600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610430806100606000396000f3fe608060405234801561001057600080fd5b50600436106100455760003560e01c8063095ea7b3146100485780632e1a7d4d146100ae578063d0679d34146100f457610046565b5b005b6100946004803603604081101561005e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061015a565b604051808215151515815260200191505060405180910390f35b6100da600480360360208110156100c457600080fd5b8101908080359060200190929190505050610203565b604051808215151515815260200191505060405180910390f35b6101406004803603604081101561010a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610362565b604051808215151515815260200191505060405180910390f35b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146101b557600080fd5b81600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001905092915050565b6000600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205473000000000000000000000000000000000000000063a293d1e89091846040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561029d57600080fd5b505af41580156102b1573d6000803e3d6000fd5b505050506040513d60208110156102c757600080fd5b8101908080519060200190929190505050600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f1935050505061035957600080fd5b60019050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146103bd57600080fd5b8273ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f1935050505090509291505056fea2646970667358221220fa09119fa13c8df37a523851a236b913e5d00bf3274d5619daad516f510c8a9264736f6c63430006080033","linkReferences":[{"length":20,"name":"safe-math-lib:SafeMathLib","offsets":[679]}]},"devdoc":{"author":"Piper Merriam ","methods":{"approve(address,uint256)":{"details":"Sets recipient to be approved to withdraw the specified amount"},"send(address,uint256)":{"details":"Sends the recipient the specified amount"},"withdraw(uint256)":{"details":"Lets caller withdraw up to their approved amount"}},"title":"Contract for holding funds in escrow between two semi trusted parties."},"runtimeBytecode":{"bytecode":"0x608060405234801561001057600080fd5b50600436106100455760003560e01c8063095ea7b3146100485780632e1a7d4d146100ae578063d0679d34146100f457610046565b5b005b6100946004803603604081101561005e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061015a565b604051808215151515815260200191505060405180910390f35b6100da600480360360208110156100c457600080fd5b8101908080359060200190929190505050610203565b604051808215151515815260200191505060405180910390f35b6101406004803603604081101561010a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610362565b604051808215151515815260200191505060405180910390f35b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146101b557600080fd5b81600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001905092915050565b6000600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205473000000000000000000000000000000000000000063a293d1e89091846040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561029d57600080fd5b505af41580156102b1573d6000803e3d6000fd5b505050506040513d60208110156102c757600080fd5b8101908080519060200190929190505050600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f1935050505061035957600080fd5b60019050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146103bd57600080fd5b8273ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f1935050505090509291505056fea2646970667358221220fa09119fa13c8df37a523851a236b913e5d00bf3274d5619daad516f510c8a9264736f6c63430006080033","linkReferences":[{"length":20,"name":"safe-math-lib:SafeMathLib","offsets":[583]}]},"sourceId":"Wallet.sol","userdoc":{"methods":{"approve(address,uint256)":{"notice":"This will set the recipient to be approved to withdraw the specified amount."},"send(address,uint256)":{"notice":"This will send the reciepient the specified amount."},"withdraw(uint256)":{"notice":"This will withdraw provided value, deducting it from your total allowance."}}}}},"deployments":{"blockchain://41941023680923e0fe4d74a34bdac8141f2540e3ae90623718e47d66d1ca4a2d/block/e30e4ef1dd1e73e788c3d094859f14ddd139a19e8a3667e2ee4831d9bd1113ac":{"Wallet":{"address":"0x491CB3AC79d0f5D7078C3cF6EF3daEcE9623CD21","block":"0x77adadc004c1a830682f3237b42ce81a379d11dfd88292c97ad80658f470717a","contractType":"Wallet","runtimeBytecode":{"linkDependencies":[{"offsets":[583],"type":"reference","value":"safe-math-lib:SafeMathLib"}]},"transaction":"0x8648f43125776ec2b727eda84d10c67db1693fce8bc1e7b3f84f9e40086e4773"}}},"manifest":"ethpm/3","name":"wallet","sources":{"Wallet.sol":{"installPath":"./Wallet.sol","type":"solidity","urls":["ipfs://QmfTZzHLSShTS1woD7JNszAyhjtS7ErFDT4QmtwEQQ1qpa"]}},"version":"1.0.0"} \ No newline at end of file +{"buildDependencies":{"owned":"ipfs://QmcxvhkJJVpbxEAa6cgW3B6XwPJb79w9GpNUv2P2THUzZR","safe-math-lib":"ipfs://QmWnPsiS3Xb8GvCDEBFnnKs8Yk4HaAX6rCqJAaQXGbCoPk"},"compilers":[{"contractTypes":["Wallet"],"name":"solc","settings":{"optimize":false},"version":"0.6.8+commit.0bbfe453"}],"contractTypes":{"Wallet":{"abi":[{"stateMutability":"nonpayable","type":"fallback"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"recipient","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"send","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"withdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}],"deploymentBytecode":{"bytecode":"0x608060405234801561001057600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610430806100606000396000f3fe608060405234801561001057600080fd5b50600436106100455760003560e01c8063095ea7b3146100485780632e1a7d4d146100ae578063d0679d34146100f457610046565b5b005b6100946004803603604081101561005e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061015a565b604051808215151515815260200191505060405180910390f35b6100da600480360360208110156100c457600080fd5b8101908080359060200190929190505050610203565b604051808215151515815260200191505060405180910390f35b6101406004803603604081101561010a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610362565b604051808215151515815260200191505060405180910390f35b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146101b557600080fd5b81600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001905092915050565b6000600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205473000000000000000000000000000000000000000063a293d1e89091846040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561029d57600080fd5b505af41580156102b1573d6000803e3d6000fd5b505050506040513d60208110156102c757600080fd5b8101908080519060200190929190505050600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f1935050505061035957600080fd5b60019050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146103bd57600080fd5b8273ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f1935050505090509291505056fea2646970667358221220fa09119fa13c8df37a523851a236b913e5d00bf3274d5619daad516f510c8a9264736f6c63430006080033","linkReferences":[{"length":20,"name":"safe-math-lib:SafeMathLib","offsets":[679]}]},"devdoc":{"author":"Piper Merriam ","methods":{"approve(address,uint256)":{"details":"Sets recipient to be approved to withdraw the specified amount"},"send(address,uint256)":{"details":"Sends the recipient the specified amount"},"withdraw(uint256)":{"details":"Lets caller withdraw up to their approved amount"}},"title":"Contract for holding funds in escrow between two semi trusted parties."},"runtimeBytecode":{"bytecode":"0x608060405234801561001057600080fd5b50600436106100455760003560e01c8063095ea7b3146100485780632e1a7d4d146100ae578063d0679d34146100f457610046565b5b005b6100946004803603604081101561005e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061015a565b604051808215151515815260200191505060405180910390f35b6100da600480360360208110156100c457600080fd5b8101908080359060200190929190505050610203565b604051808215151515815260200191505060405180910390f35b6101406004803603604081101561010a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610362565b604051808215151515815260200191505060405180910390f35b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146101b557600080fd5b81600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001905092915050565b6000600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205473000000000000000000000000000000000000000063a293d1e89091846040518363ffffffff1660e01b8152600401808381526020018281526020019250505060206040518083038186803b15801561029d57600080fd5b505af41580156102b1573d6000803e3d6000fd5b505050506040513d60208110156102c757600080fd5b8101908080519060200190929190505050600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f1935050505061035957600080fd5b60019050919050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146103bd57600080fd5b8273ffffffffffffffffffffffffffffffffffffffff166108fc839081150290604051600060405180830381858888f1935050505090509291505056fea2646970667358221220fa09119fa13c8df37a523851a236b913e5d00bf3274d5619daad516f510c8a9264736f6c63430006080033","linkReferences":[{"length":20,"name":"safe-math-lib:SafeMathLib","offsets":[583]}]},"sourceId":"Wallet.sol","userdoc":{"methods":{"approve(address,uint256)":{"notice":"This will set the recipient to be approved to withdraw the specified amount."},"send(address,uint256)":{"notice":"This will send the reciepient the specified amount."},"withdraw(uint256)":{"notice":"This will withdraw provided value, deducting it from your total allowance."}}}}},"deployments":{"blockchain://41941023680923e0fe4d74a34bdac8141f2540e3ae90623718e47d66d1ca4a2d/block/e30e4ef1dd1e73e788c3d094859f14ddd139a19e8a3667e2ee4831d9bd1113ac":{"Wallet":{"address":"0x491CB3AC79d0f5D7078C3cF6EF3daEcE9623CD21","block":"0x77adadc004c1a830682f3237b42ce81a379d11dfd88292c97ad80658f470717a","contractType":"Wallet","runtimeBytecode":{"linkDependencies":[{"offsets":[583],"type":"reference","value":"safe-math-lib:SafeMathLib"}]},"transaction":"0x8648f43125776ec2b727eda84d10c67db1693fce8bc1e7b3f84f9e40086e4773"}}},"manifest":"ethpm/3","name":"wallet","sources":{"Wallet.sol":{"installPath":"./Wallet.sol","type":"solidity","urls":["ipfs://QmVZdqQfZG5TMArijGik6eFEnwsiBmqnAYaqWBCEpUjtUN"]}},"version":"1.0.0"} \ No newline at end of file