From 516ea30fe6ccbc2822bfa168e58cd1c93084617c Mon Sep 17 00:00:00 2001 From: Barry Gitarts Date: Wed, 15 Aug 2018 11:14:13 -0400 Subject: [PATCH] Revert "add sendwithapproval method" This reverts commit 1ea3b8b1490b919c20e66519a47796ee7bce0fe5. --- app/components/ens/registerSubDomain.js | 190 ++++++++++----------- contracts/token/ApprovalReceiver.sol | 5 + contracts/token/ApproveAndCallFallBack.sol | 5 - contracts/token/TestToken.sol | 14 +- 4 files changed, 98 insertions(+), 116 deletions(-) create mode 100644 contracts/token/ApprovalReceiver.sol delete mode 100644 contracts/token/ApproveAndCallFallBack.sol diff --git a/app/components/ens/registerSubDomain.js b/app/components/ens/registerSubDomain.js index 81173ef..c43b39b 100644 --- a/app/components/ens/registerSubDomain.js +++ b/app/components/ens/registerSubDomain.js @@ -12,10 +12,10 @@ import { getStatusContactCode, getSNTAllowance } from '../../reducers/accounts'; import FieldGroup from '../standard/FieldGroup'; import LinearProgress from '@material-ui/core/LinearProgress'; import { generateXY } from '../../utils/ecdsa'; -import { BigNumber } from '../standard/utils'; + +console.log(TestToken) const { soliditySha3, fromWei } = web3.utils; -const unlimitedAllowance = new BigNumber(2).pow(256).sub(1); const InnerForm = ({ values, @@ -33,98 +33,98 @@ const InnerForm = ({ }) => (
- {!subDomain && - } - {!domainName && - } + {!domainName && + { ENSSubdomainRegistry.methods.getPrice(hash(values.domainName)) .call() .then((res) => { setFieldValue('price', fromWei(res)); }); }} - > - Get Price - - } - />} - {!domainPrice && - } - - + Get Price + + } + />} + {!domainPrice && + } + + + setFieldValue('address', web3.eth.defaultAccount)}>Use My Primary Address} + /> + {!isSubmitting ? : } + + + + - setFieldValue('statusAddress', statusContactCode)} + wide /> + + + setFieldValue('address', web3.eth.defaultAccount)}>Use My Primary Address} - /> - {!isSubmitting ? : } - - - - setFieldValue('statusAddress', statusContactCode)} - wide /> - - - setFieldValue('address', web3.eth.defaultAccount)} - required - wide /> - -
- -
-
+ onChange={handleChange} + paste={() => setFieldValue('address', web3.eth.defaultAccount)} + required + wide /> + +
+ +
+
); @@ -142,34 +142,22 @@ const RegisterSubDomain = withFormik({ handleSubmit(values, { setSubmitting, props }) { const { address, statusAddress } = values; const { subDomain, domainName, registeredCallbackFn } = props || values; - const { SNTAllowance } = props; const { methods: { register } } = ENSSubdomainRegistry; const subdomainHash = soliditySha3(subDomain); const domainNameHash = hash(domainName); const resolveToAddr = address || zeroAddress; const points = statusAddress ? generateXY(statusAddress) : null; - const registerAbi = ENSSubdomainRegistry.options.jsonInterface.find(x => x.name === 'register'); - const encodedRegister = web3.eth.abi.encodeFunctionCall(registerAbi, [ - subdomainHash, - domainNameHash, - resolveToAddr, - points ? points.x : zeroBytes32, - points ? points.y : zeroBytes32 - ]); - - const sendWithApproval = TestToken.methods.approveAndCall(ENSSubdomainRegistry._address, unlimitedAllowance, encodedRegister); - const send = register( + const toSend = register( subdomainHash, domainNameHash, resolveToAddr, points ? points.x : zeroBytes32, points ? points.y : zeroBytes32 ); - const toSend = Number(SNTAllowance) > 0 ? send : sendWithApproval; - toSend.estimateGas({ data: encodedRegister }).then(gasEstimated => { - console.log("Register would work. :D Gas estimated: " + gasEstimated); - console.log("Trying: register(\"" + subdomainHash + "\",\"" + domainNameHash+"\",\""+resolveToAddr+"\",\""+zeroBytes32+"\",\""+zeroBytes32+"\")") + toSend.estimateGas().then(gasEstimated => { + console.log("Register would work. :D Gas estimated: "+gasEstimated) + console.log("Trying: register(\""+subdomainHash+"\",\""+domainNameHash+"\",\""+resolveToAddr+"\",\""+zeroBytes32+"\",\""+zeroBytes32+"\")") toSend.send({gas: gasEstimated+1000}).then(txId => { if(txId.status == "0x1" || txId.status == "0x01"){ console.log("Register send success. :)") diff --git a/contracts/token/ApprovalReceiver.sol b/contracts/token/ApprovalReceiver.sol new file mode 100644 index 0000000..866e1b0 --- /dev/null +++ b/contracts/token/ApprovalReceiver.sol @@ -0,0 +1,5 @@ +pragma solidity ^0.4.11; + +contract ApprovalReceiver { + function receiveApproval(address from, uint value, address tokenContract, bytes extraData) returns (bool); +} diff --git a/contracts/token/ApproveAndCallFallBack.sol b/contracts/token/ApproveAndCallFallBack.sol deleted file mode 100644 index dd04956..0000000 --- a/contracts/token/ApproveAndCallFallBack.sol +++ /dev/null @@ -1,5 +0,0 @@ -pragma solidity ^0.4.11; - -contract ApproveAndCallFallBack { - function receiveApproval(address from, uint256 _amount, address _token, bytes _data) returns (bool); -} diff --git a/contracts/token/TestToken.sol b/contracts/token/TestToken.sol index 29e4290..0845c45 100644 --- a/contracts/token/TestToken.sol +++ b/contracts/token/TestToken.sol @@ -1,7 +1,7 @@ pragma solidity ^0.4.23; import "./StandardToken.sol"; -import './ApproveAndCallFallBack.sol'; +import './ApprovalReceiver.sol'; /** * @notice ERC20Token for test scripts, can be minted by anyone. @@ -18,15 +18,9 @@ contract TestToken is StandardToken { mint(msg.sender, _amount); } - function approveAndCall(address _spender, uint256 _amount, bytes _extraData) returns (bool success) { - if (!approve(_spender, _amount)) throw; - ApproveAndCallFallBack(_spender).receiveApproval( - msg.sender, - _amount, - this, - _extraData - ); - return true; + function approveAndCall(address _spender, uint256 _value, bytes _extraData) returns (bool success) { + assert(approve(_spender, _value)); + return ApprovalReceiver(_spender).receiveApproval(msg.sender, _value, this, _extraData); } }