owned this note
owned this note
Published
Linked with GitHub
# Swap Test Guide (deprecated)
**this guide is deprecated, please use the [generic guide](https://hackmd.io/K8ye4VwURvWLR6F-fOiIHA?view).**
This sets up 2 swarm nodes in a private network with balances on their bzzaccounts on a local blockchain. The nodes use the datadirs `./s1` and `./s2`. Requires `ganache-cli` and `websocat` to be installed. (https://www.npmjs.com/package/ganache-cli)
# Ganache session
Start a ganache instance with a specific seed (do **not** change it).
```bash
ganache-cli -m "sound oval reform desk episode taxi tribe frequent quiz about answer vendor" -p 9545
```
This
* **deploys** an `ERC20Mintable` (`0x41ca78f7fd9e745beabb2145a9ffd60992a96a28`)
* **mints** tokens to the address of the first node
* **mints** tokens to the address of the second node
* **deploys** the `SimpleSwapFactory` and point to the recently deployed ERC20 contract (`0x713f67f1e26d44deb9e7c7165dc47dedc5ab69cb`)
```bash
curl -X POST -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"eth_sendTransaction","params":[{ "from": "0xbf4f9637C281DDFb1Fbd3be5a1daE6531D408F11", "gas": "0x2dc6c0", "data": "0x608060405262000024620000186200002a60201b60201c565b6200003260201b60201c565b62000257565b600033905090565b6200004d8160036200009360201b620012a81790919060201c565b8073ffffffffffffffffffffffffffffffffffffffff167f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f660405160405180910390a250565b620000a582826200017760201b60201c565b1562000119576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f526f6c65733a206163636f756e7420616c72656164792068617320726f6c650081525060200191505060405180910390fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000200576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180620018506022913960400191505060405180910390fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6115e980620002676000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c8063983b2d5611610071578063983b2d56146102e7578063986502751461032b578063a457c2d714610335578063a9059cbb1461039b578063aa271e1a14610401578063dd62ed3e1461045d576100b4565b8063095ea7b3146100b957806318160ddd1461011f57806323b872dd1461013d57806339509351146101c357806340c10f191461022957806370a082311461028f575b600080fd5b610105600480360360408110156100cf57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506104d5565b604051808215151515815260200191505060405180910390f35b6101276104f3565b6040518082815260200191505060405180910390f35b6101a96004803603606081101561015357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506104fd565b604051808215151515815260200191505060405180910390f35b61020f600480360360408110156101d957600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506105d6565b604051808215151515815260200191505060405180910390f35b6102756004803603604081101561023f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610689565b604051808215151515815260200191505060405180910390f35b6102d1600480360360208110156102a557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610704565b6040518082815260200191505060405180910390f35b610329600480360360208110156102fd57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061074c565b005b6103336107bd565b005b6103816004803603604081101561034b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506107cf565b604051808215151515815260200191505060405180910390f35b6103e7600480360360408110156103b157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061089c565b604051808215151515815260200191505060405180910390f35b6104436004803603602081101561041757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506108ba565b604051808215151515815260200191505060405180910390f35b6104bf6004803603604081101561047357600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506108d7565b6040518082815260200191505060405180910390f35b60006104e96104e261095e565b8484610966565b6001905092915050565b6000600254905090565b600061050a848484610b5d565b6105cb8461051661095e565b6105c6856040518060600160405280602881526020016114fd60289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061057c61095e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e139092919063ffffffff16565b610966565b600190509392505050565b600061067f6105e361095e565b8461067a85600160006105f461095e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610ed390919063ffffffff16565b610966565b6001905092915050565b600061069b61069661095e565b6108ba565b6106f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001806114ac6030913960400191505060405180910390fd5b6106fa8383610f5b565b6001905092915050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61075c61075761095e565b6108ba565b6107b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001806114ac6030913960400191505060405180910390fd5b6107ba81611116565b50565b6107cd6107c861095e565b611170565b565b60006108926107dc61095e565b8461088d85604051806060016040528060258152602001611590602591396001600061080661095e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e139092919063ffffffff16565b610966565b6001905092915050565b60006108b06108a961095e565b8484610b5d565b6001905092915050565b60006108d08260036111ca90919063ffffffff16565b9050919050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156109ec576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602481526020018061156c6024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610a72576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806114646022913960400191505060405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610be3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806115476025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610c69576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806114416023913960400191505060405180910390fd5b610cd481604051806060016040528060268152602001611486602691396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610e139092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610d67816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610ed390919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b6000838311158290610ec0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610e85578082015181840152602081019050610e6a565b50505050905090810190601f168015610eb25780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b600080828401905083811015610f51576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610ffe576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f45524332303a206d696e7420746f20746865207a65726f20616464726573730081525060200191505060405180910390fd5b61101381600254610ed390919063ffffffff16565b60028190555061106a816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610ed390919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b61112a8160036112a890919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167f6ae172837ea30b801fbfcdd4108aa1d5bf8ff775444fd70256b44e6bf3dfc3f660405160405180910390a250565b61118481600361138390919063ffffffff16565b8073ffffffffffffffffffffffffffffffffffffffff167fe94479a9f7e1952cc78f2d6baab678adc1b772d936c6583def489e524cb6669260405160405180910390a250565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611251576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806115256022913960400191505060405180910390fd5b8260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6112b282826111ca565b15611325576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f526f6c65733a206163636f756e7420616c72656164792068617320726f6c650081525060200191505060405180910390fd5b60018260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b61138d82826111ca565b6113e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806114dc6021913960400191505060405180910390fd5b60008260000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550505056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e63654d696e746572526f6c653a2063616c6c657220646f6573206e6f74206861766520746865204d696e74657220726f6c65526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c6545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365526f6c65733a206163636f756e7420697320746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa265627a7a723158209365f743f4259fd57b70b0249fd5414047db47568854d4cd343852d2e5ad185164736f6c634300050b0032526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373"}], "id":1 }' http://localhost:9545 &&
curl -X POST -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"eth_sendTransaction","params":[{ "from": "0xbf4f9637C281DDFb1Fbd3be5a1daE6531D408F11", "gas": "0x2dc6c0", "to": "0x41ca78f7fd9e745beabb2145a9ffd60992a96a28", "data":"0x40c10f19000000000000000000000000bf4f9637c281ddfb1fbd3be5a1dae6531d408f11000000000000000000000000000000000000000000000000000000e8d4a51000"}], "id":1 }' http://localhost:9545 &&
curl -X POST -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"eth_sendTransaction","params":[{ "from": "0xbf4f9637C281DDFb1Fbd3be5a1daE6531D408F11", "gas": "0x2dc6c0", "to": "0x41ca78f7fd9e745beabb2145a9ffd60992a96a28", "data":"0x40c10f19000000000000000000000000c45d64d8f9642a604db93c59fd38492b262391ca000000000000000000000000000000000000000000000000000000e8d4a51000"}], "id":1 }' http://localhost:9545 &&
curl -X POST -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"eth_sendTransaction","params":[{ "from": "0xbf4f9637C281DDFb1Fbd3be5a1daE6531D408F11", "gas": "0x2dc6c0", "data":"0x608060405234801561001057600080fd5b506040516118693803806118698339818101604052602081101561003357600080fd5b5051600180546001600160a01b0319166001600160a01b03909216919091179055611806806100636000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c8063576d727114610046578063a6021ace1461008e578063c70242ad14610096575b600080fd5b6100726004803603604081101561005c57600080fd5b506001600160a01b0381351690602001356100d0565b604080516001600160a01b039092168252519081900360200190f35b610072610190565b6100bc600480360360208110156100ac57600080fd5b50356001600160a01b031661019f565b604080519115158252519081900360200190f35b600154604051600091829185916001600160a01b03169085906100f2906101b4565b6001600160a01b039384168152919092166020820152604080820192909252905190819003606001906000f080158015610130573d6000803e3d6000fd5b506001600160a01b03811660008181526020818152604091829020805460ff19166001179055815192835290519293507fc0ffc525a1c7689549d7f79b49eca900e61ac49b43d977f680bcc3b36224c00492918290030190a19392505050565b6001546001600160a01b031681565b60006020819052908152604090205460ff1681565b611610806101c28339019056fe608060405234801561001057600080fd5b506040516116103803806116108339818101604052606081101561003357600080fd5b5080516020820151604090920151600680546001600160a01b039384166001600160a01b031991821617909155600180549390941692169190911790915560005561158d806100836000396000f3fe608060405234801561001057600080fd5b506004361061010b5760003560e01c8063946f46a2116100a2578063b7ec1a3311610071578063b7ec1a3314610477578063c76a4d311461047f578063d4c9a8e8146104a5578063e0bcf13a1461055e578063fc0c546a146105665761010b565b8063946f46a2146103d1578063b6343b0d146103f7578063b69ef8a814610443578063b77703501461044b5761010b565b80631d143848116100de5780631d1438481461033e5780632e1a7d4d14610362578063338f3fed1461037f57806381f03fcb146103ab5761010b565b80630d5f26591461011057806312101021146101cb5780631357e1dc146101e55780631633fb1d146101ed575b600080fd5b6101c96004803603606081101561012657600080fd5b6001600160a01b0382351691602081013591810190606081016040820135600160201b81111561015557600080fd5b82018360208201111561016757600080fd5b803590602001918460018302840111600160201b8311171561018857600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061056e945050505050565b005b6101d3610581565b60408051918252519081900360200190f35b6101d3610587565b6101c9600480360360c081101561020357600080fd5b6001600160a01b03823581169260208101359091169160408201359190810190608081016060820135600160201b81111561023d57600080fd5b82018360208201111561024f57600080fd5b803590602001918460018302840111600160201b8311171561027057600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092958435959094909350604081019250602001359050600160201b8111156102ca57600080fd5b8201836020820111156102dc57600080fd5b803590602001918460018302840111600160201b831117156102fd57600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061058d945050505050565b610346610607565b604080516001600160a01b039092168252519081900360200190f35b6101c96004803603602081101561037857600080fd5b5035610616565b6101c96004803603604081101561039557600080fd5b506001600160a01b038135169060200135610777565b6101d3600480360360208110156103c157600080fd5b50356001600160a01b03166108b5565b6101c9600480360360208110156103e757600080fd5b50356001600160a01b03166108c7565b61041d6004803603602081101561040d57600080fd5b50356001600160a01b03166109ae565b604080519485526020850193909352838301919091526060830152519081900360800190f35b6101d36109d5565b6101c96004803603604081101561046157600080fd5b506001600160a01b038135169060200135610a51565b6101d3610b73565b6101d36004803603602081101561049557600080fd5b50356001600160a01b0316610b94565b6101c9600480360360608110156104bb57600080fd5b6001600160a01b0382351691602081013591810190606081016040820135600160201b8111156104ea57600080fd5b8201836020820111156104fc57600080fd5b803590602001918460018302840111600160201b8311171561051d57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550610bcb945050505050565b6101d3610cde565b610346610ce4565b61057c338484600085610cf3565b505050565b60005481565b60035481565b6105a361059d3033878987611112565b84611173565b6001600160a01b0316866001600160a01b0316146105f25760405162461bcd60e51b815260040180806020018281038252602281526020018061149c6022913960400191505060405180910390fd5b6105ff8686868585610cf3565b505050505050565b6006546001600160a01b031681565b6006546001600160a01b0316331461066e576040805162461bcd60e51b815260206004820152601660248201527529b4b6b83632a9bbb0b81d103737ba1034b9b9bab2b960511b604482015290519081900360640190fd5b610676610b73565b8111156106b45760405162461bcd60e51b81526004018080602001828103825260288152602001806115316028913960400191505060405180910390fd5b6001546006546040805163a9059cbb60e01b81526001600160a01b039283166004820152602481018590529051919092169163a9059cbb9160448083019260209291908290030181600087803b15801561070d57600080fd5b505af1158015610721573d6000803e3d6000fd5b505050506040513d602081101561073757600080fd5b50516107745760405162461bcd60e51b81526004018080602001828103825260278152602001806114e36027913960400191505060405180910390fd5b50565b6006546001600160a01b031633146107cf576040805162461bcd60e51b815260206004820152601660248201527529b4b6b83632a9bbb0b81d103737ba1034b9b9bab2b960511b604482015290519081900360640190fd5b6107d76109d5565b6005546107ea908363ffffffff61118e16565b11156108275760405162461bcd60e51b81526004018080602001828103825260348152602001806114686034913960400191505060405180910390fd5b6001600160a01b03821660009081526004602052604090208054610851908363ffffffff61118e16565b8155600554610866908363ffffffff61118e16565b60055560006003820155805460408051918252516001600160a01b038516917f2506c43272ded05d095b91dbba876e66e46888157d3e078db5691496e96c5fad919081900360200190a2505050565b60026020526000908152604090205481565b6001600160a01b0381166000908152600460205260409020600381015442108015906108f65750600381015415155b6109315760405162461bcd60e51b81526004018080602001828103825260258152602001806114be6025913960400191505060405180910390fd5b600181015481546109479163ffffffff6111e816565b81556000600382015560018101546005546109679163ffffffff6111e816565b600555805460408051918252516001600160a01b038416917f2506c43272ded05d095b91dbba876e66e46888157d3e078db5691496e96c5fad919081900360200190a25050565b60046020526000908152604090208054600182015460028301546003909301549192909184565b600154604080516370a0823160e01b815230600482015290516000926001600160a01b0316916370a08231916024808301926020929190829003018186803b158015610a2057600080fd5b505afa158015610a34573d6000803e3d6000fd5b505050506040513d6020811015610a4a57600080fd5b5051905090565b6006546001600160a01b03163314610aa9576040805162461bcd60e51b815260206004820152601660248201527529b4b6b83632a9bbb0b81d103737ba1034b9b9bab2b960511b604482015290519081900360640190fd5b6001600160a01b03821660009081526004602052604090208054821115610b015760405162461bcd60e51b815260040180806020018281038252602781526020018061150a6027913960400191505060405180910390fd5b60008160020154600014610b19578160020154610b1d565b6000545b4281016003840155600183018490556040805185815290519192506001600160a01b038616917fc8305077b495025ec4c1d977b176a762c350bb18cad4666ce1ee85c32b78698a9181900360200190a250505050565b6000610b8f600554610b836109d5565b9063ffffffff6111e816565b905090565b6001600160a01b038116600090815260046020526040812054610bc590610bb9610b73565b9063ffffffff61118e16565b92915050565b6006546001600160a01b03163314610c23576040805162461bcd60e51b815260206004820152601660248201527529b4b6b83632a9bbb0b81d103737ba1034b9b9bab2b960511b604482015290519081900360640190fd5b610c37610c3130858561122a565b82611173565b6001600160a01b0316836001600160a01b031614610c865760405162461bcd60e51b815260040180806020018281038252602281526020018061149c6022913960400191505060405180910390fd5b6001600160a01b038316600081815260046020908152604091829020600201859055815185815291517f7b816003a769eb718bd9c66bdbd2dd5827da3f92bc6645276876bd7957b08cf09281900390910190a2505050565b60055481565b6001546001600160a01b031681565b6006546001600160a01b03163314610d7557610d13610c3130878661122a565b6006546001600160a01b03908116911614610d75576040805162461bcd60e51b815260206004820152601d60248201527f53696d706c65537761703a20696e76616c696420697373756572536967000000604482015290519081900360640190fd5b6001600160a01b038516600090815260026020526040812054610d9f90859063ffffffff6111e816565b90506000610db582610db089610b94565b61127b565b6001600160a01b03881660009081526004602052604081205491925090610ddd90839061127b565b905084821015610e34576040805162461bcd60e51b815260206004820152601d60248201527f53696d706c65537761703a2063616e6e6f74207061792063616c6c6572000000604482015290519081900360640190fd5b8015610e93576001600160a01b038816600090815260046020526040902054610e63908263ffffffff6111e816565b6001600160a01b038916600090815260046020526040902055600554610e8f908263ffffffff6111e816565b6005555b6001600160a01b038816600090815260026020526040902054610ebc908363ffffffff61118e16565b6001600160a01b038916600090815260026020526040902055600354610ee8908363ffffffff61118e16565b6003556001546001600160a01b031663a9059cbb88610f0d858963ffffffff6111e816565b6040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015610f5c57600080fd5b505af1158015610f70573d6000803e3d6000fd5b505050506040513d6020811015610f8657600080fd5b5051610fc35760405162461bcd60e51b81526004018080602001828103825260278152602001806114e36027913960400191505060405180910390fd5b8415611084576001546040805163a9059cbb60e01b81523360048201526024810188905290516001600160a01b039092169163a9059cbb916044808201926020929091908290030181600087803b15801561101d57600080fd5b505af1158015611031573d6000803e3d6000fd5b505050506040513d602081101561104757600080fd5b50516110845760405162461bcd60e51b81526004018080602001828103825260278152602001806114e36027913960400191505060405180910390fd5b6040805183815260208101889052808201879052905133916001600160a01b038a811692908c16917f950494fc3642fae5221b6c32e0e45765c95ebb382a04a71b160db0843e74c99f919081900360600190a4818314611108576040517f3f4449c047e11092ec54dc0751b6b4817a9162745de856c893a26e611d18ffc490600090a15b5050505050505050565b604080516bffffffffffffffffffffffff19606097881b811660208084019190915296881b8116603483015260488201959095529290951b9092166068820152607c8082019290925283518082039092018252609c01909252815191012090565b600061118761118184611291565b836112e2565b9392505050565b600082820183811015611187576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b600061118783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506113d0565b604080516bffffffffffffffffffffffff19606095861b81166020808401919091529490951b9094166034850152604880850192909252805180850390920182526068909301909252815191012090565b600081831061128a5781611187565b5090919050565b604080517f19457468657265756d205369676e6564204d6573736167653a0a333200000000602080830191909152603c8083019490945282518083039094018452605c909101909152815191012090565b600081516041146112f557506000610bc5565b60208201516040830151606084015160001a7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a082111561133b5760009350505050610bc5565b8060ff16601b1415801561135357508060ff16601c14155b156113645760009350505050610bc5565b6040805160008152602080820180845289905260ff8416828401526060820186905260808201859052915160019260a0808401939192601f1981019281900390910190855afa1580156113bb573d6000803e3d6000fd5b5050604051601f190151979650505050505050565b6000818484111561145f5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561142457818101518382015260200161140c565b50505050905090810190601f1680156114515780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50505090039056fe53696d706c65537761703a2068617264206465706f7369742063616e6e6f74206265206d6f7265207468616e2062616c616e636553696d706c65537761703a20696e76616c69642062656e656669636961727953696753696d706c65537761703a206465706f736974206e6f74207965742074696d6564206f757453696d706c65537761703a2053696d706c65537761703a207472616e73666572206661696c656453696d706c65537761703a2068617264206465706f736974206e6f742073756666696369656e7453696d706c65537761703a206c697175696442616c616e6365206e6f742073756666696369656e74a265627a7a7231582095980efb0bf250253e071e182406b23ba29b6a984de46e7b420fb1962f7b2a8b64736f6c634300050d0032a265627a7a7231582074f28023ea8adc36d5f6aac79fa6353a114852f91b58f3e8b0dbf1b481c203e364736f6c634300050d003200000000000000000000000041ca78f7fd9e745beabb2145a9ffd60992a96a28"}], "id":1 }' http://localhost:9545
```
Note: There are `&&` at the end of the first 3 lines. Copy all 4 lines at once!
# Start the nodes (in the swarm repo folder)
This will populate the datadirs of the swarm nodes with the accounts already prefunded by ganache. It will also use predefined nodekeys. If you want to reset balances to 0 simply execute the entire code again. If you want the datadir to persist only execute the last line (in that case make sure `DATADIR1` and/or `DATADIR2` is defined).
Start the first node (with syncing disabled) with
```bash
DATADIR1="s1" &&
rm -rf "$DATADIR1" && mkdir "$DATADIR1/" &&
make && ./build/bin/swarm --bzznetworkid 5 --datadir "$DATADIR1" --swap --swap-backend-url http://localhost:9545 --ws --wsaddr=0.0.0.0 --wsapi=accounting,bzz,swap --wsorigins='*' --no-sync --bzzkeyhex 40b3e576b606d4580ad3c875e9fda07ba3e4d99a40534c5bf1bc72226451adb1 --nodekeyhex 2eae3526db799cb5f1ab6ab64255ba8182cdaeb4f773a0ae1244f4ca59978dc2 --swap-deposit-amount 500000000000 --swap-chequebook-factory 0x713f67f1e26d44deb9e7c7165dc47dedc5ab69cb
```
and the second node with this:
```bash
DATADIR2="s2" &&
rm -rf "$DATADIR2" && mkdir "$DATADIR2" &&
./build/bin/swarm --bzznetworkid 5 --datadir "$DATADIR2" --port 40400 --swap --swap-backend-url http://localhost:9545 --bzzport 9100 --bootnodes "enode://9b7571c26d50bed78f614be5bf3b2d661176fdfeb546f100b84dd03545f4bc98e42e640286ac92fe110ec5f4995141743e47d8f642aa49ac05bd5f2cab2e881a@127.0.0.1:30399" --ws --wsaddr=0.0.0.0 --wsapi=accounting,bzz,swap --wsport 8556 --wsorigins='*' --no-sync --bzzkeyhex 73f0f0e024f09059acb267f836ba7924e0a02fe9dd8089293e7ca3b7a1c14a67 --swap-deposit-amount 500000000000 --swap-chequebook-factory 0x713f67f1e26d44deb9e7c7165dc47dedc5ab69cb
```
# Generate a random file and upload
This generates a 1.6MB file, pushes it to one nodes and then retrieves it one the other one which should be large enough to immediately trigger a cheque.
```bash
dd if=/dev/urandom of=output bs=1600k count=1 &&
./build/bin/swarm --bzzapi http://localhost:8500 down \
"bzz-raw://$(./build/bin/swarm --bzzapi http://localhost:9100 up output)"
```
# Query Balances
Query all balances:
```bash
echo swap_balances | websocat "ws://127.0.0.1:8546" --origin localhost --jsonrpc -n --one-message &&
echo swap_balances | websocat "ws://127.0.0.1:8556" --origin localhost --jsonrpc -n --one-message
```
Query a specific balance:
```bash
ADDRESS=02a4c0fafcf4ad9b189b5d9fda216968c8268e07c25a7ac235d643c521682de7 # example
echo swap_peerBalance \"$ADDRESS\" | websocat "ws://127.0.0.1:8546" --origin localhost --jsonrpc -n --one-message
```
# Other Clients
## Generic Test Guide
https://hackmd.io/K8ye4VwURvWLR6F-fOiIHA?view