CrowdSale smart contract not accepting payment
up vote
0
down vote
favorite
I've created a Ethereum smart contract and I'm playing with Zepplin library to create a ERC20 token contract and a CrowdSale contract to allow people to buy my tokens.
The token contract
pragma solidity ^0.4.24;
import "https://raw.githubusercontent.com/OpenZeppelin/openzeppelin-solidity/master/contracts/token/ERC20/ERC20.sol";
contract NourToken is ERC20 {
string public symbol = "NOR";
string public name = "Nourreddine Token";
uint8 public decimals = 18;
uint256 public constant INITIAL_SUPPLY = 10000 * (10 ** uint256(decimals));
constructor() public {
_mint(msg.sender, INITIAL_SUPPLY);
}
}
The crowdsale contract
pragma solidity ^0.4.24;
import "https://raw.githubusercontent.com/OpenZeppelin/openzeppelin-solidity/master/contracts/crowdsale/Crowdsale.sol";
import "https://raw.githubusercontent.com/OpenZeppelin/openzeppelin-solidity/master/contracts/token/ERC20/ERC20.sol";
contract NourCrowdSale is Crowdsale {
constructor (
uint256 rate,
address wallet,
ERC20 token) public
Crowdsale(rate, wallet, token)
{}
}
When I try to do a payment on the Crowdsale contract, the transaction is failing and I don't know why.
Here is the a sample failed transaction : https://ropsten.etherscan.io/tx/0x8777f2fa58988419bbfc22c96c50470ea242db4ea865d0e85aaa9f2dd1206dbe
Can anyone explain why it's failing ?
Thank you very much.
ethereum solidity smartcontracts
add a comment |
up vote
0
down vote
favorite
I've created a Ethereum smart contract and I'm playing with Zepplin library to create a ERC20 token contract and a CrowdSale contract to allow people to buy my tokens.
The token contract
pragma solidity ^0.4.24;
import "https://raw.githubusercontent.com/OpenZeppelin/openzeppelin-solidity/master/contracts/token/ERC20/ERC20.sol";
contract NourToken is ERC20 {
string public symbol = "NOR";
string public name = "Nourreddine Token";
uint8 public decimals = 18;
uint256 public constant INITIAL_SUPPLY = 10000 * (10 ** uint256(decimals));
constructor() public {
_mint(msg.sender, INITIAL_SUPPLY);
}
}
The crowdsale contract
pragma solidity ^0.4.24;
import "https://raw.githubusercontent.com/OpenZeppelin/openzeppelin-solidity/master/contracts/crowdsale/Crowdsale.sol";
import "https://raw.githubusercontent.com/OpenZeppelin/openzeppelin-solidity/master/contracts/token/ERC20/ERC20.sol";
contract NourCrowdSale is Crowdsale {
constructor (
uint256 rate,
address wallet,
ERC20 token) public
Crowdsale(rate, wallet, token)
{}
}
When I try to do a payment on the Crowdsale contract, the transaction is failing and I don't know why.
Here is the a sample failed transaction : https://ropsten.etherscan.io/tx/0x8777f2fa58988419bbfc22c96c50470ea242db4ea865d0e85aaa9f2dd1206dbe
Can anyone explain why it's failing ?
Thank you very much.
ethereum solidity smartcontracts
You can try by yourself in the Remix IDE : remix.ethereum.org
– nono
Nov 11 at 10:52
Can you also provide the error message and how you send the payment. There are many reason why it could fail.
– nikos fotiadis
Nov 11 at 12:43
Hi Nikos, thanks for the help, there was no error message.
– nono
Nov 11 at 23:33
add a comment |
up vote
0
down vote
favorite
up vote
0
down vote
favorite
I've created a Ethereum smart contract and I'm playing with Zepplin library to create a ERC20 token contract and a CrowdSale contract to allow people to buy my tokens.
The token contract
pragma solidity ^0.4.24;
import "https://raw.githubusercontent.com/OpenZeppelin/openzeppelin-solidity/master/contracts/token/ERC20/ERC20.sol";
contract NourToken is ERC20 {
string public symbol = "NOR";
string public name = "Nourreddine Token";
uint8 public decimals = 18;
uint256 public constant INITIAL_SUPPLY = 10000 * (10 ** uint256(decimals));
constructor() public {
_mint(msg.sender, INITIAL_SUPPLY);
}
}
The crowdsale contract
pragma solidity ^0.4.24;
import "https://raw.githubusercontent.com/OpenZeppelin/openzeppelin-solidity/master/contracts/crowdsale/Crowdsale.sol";
import "https://raw.githubusercontent.com/OpenZeppelin/openzeppelin-solidity/master/contracts/token/ERC20/ERC20.sol";
contract NourCrowdSale is Crowdsale {
constructor (
uint256 rate,
address wallet,
ERC20 token) public
Crowdsale(rate, wallet, token)
{}
}
When I try to do a payment on the Crowdsale contract, the transaction is failing and I don't know why.
Here is the a sample failed transaction : https://ropsten.etherscan.io/tx/0x8777f2fa58988419bbfc22c96c50470ea242db4ea865d0e85aaa9f2dd1206dbe
Can anyone explain why it's failing ?
Thank you very much.
ethereum solidity smartcontracts
I've created a Ethereum smart contract and I'm playing with Zepplin library to create a ERC20 token contract and a CrowdSale contract to allow people to buy my tokens.
The token contract
pragma solidity ^0.4.24;
import "https://raw.githubusercontent.com/OpenZeppelin/openzeppelin-solidity/master/contracts/token/ERC20/ERC20.sol";
contract NourToken is ERC20 {
string public symbol = "NOR";
string public name = "Nourreddine Token";
uint8 public decimals = 18;
uint256 public constant INITIAL_SUPPLY = 10000 * (10 ** uint256(decimals));
constructor() public {
_mint(msg.sender, INITIAL_SUPPLY);
}
}
The crowdsale contract
pragma solidity ^0.4.24;
import "https://raw.githubusercontent.com/OpenZeppelin/openzeppelin-solidity/master/contracts/crowdsale/Crowdsale.sol";
import "https://raw.githubusercontent.com/OpenZeppelin/openzeppelin-solidity/master/contracts/token/ERC20/ERC20.sol";
contract NourCrowdSale is Crowdsale {
constructor (
uint256 rate,
address wallet,
ERC20 token) public
Crowdsale(rate, wallet, token)
{}
}
When I try to do a payment on the Crowdsale contract, the transaction is failing and I don't know why.
Here is the a sample failed transaction : https://ropsten.etherscan.io/tx/0x8777f2fa58988419bbfc22c96c50470ea242db4ea865d0e85aaa9f2dd1206dbe
Can anyone explain why it's failing ?
Thank you very much.
ethereum solidity smartcontracts
ethereum solidity smartcontracts
asked Nov 11 at 10:52
nono
158212
158212
You can try by yourself in the Remix IDE : remix.ethereum.org
– nono
Nov 11 at 10:52
Can you also provide the error message and how you send the payment. There are many reason why it could fail.
– nikos fotiadis
Nov 11 at 12:43
Hi Nikos, thanks for the help, there was no error message.
– nono
Nov 11 at 23:33
add a comment |
You can try by yourself in the Remix IDE : remix.ethereum.org
– nono
Nov 11 at 10:52
Can you also provide the error message and how you send the payment. There are many reason why it could fail.
– nikos fotiadis
Nov 11 at 12:43
Hi Nikos, thanks for the help, there was no error message.
– nono
Nov 11 at 23:33
You can try by yourself in the Remix IDE : remix.ethereum.org
– nono
Nov 11 at 10:52
You can try by yourself in the Remix IDE : remix.ethereum.org
– nono
Nov 11 at 10:52
Can you also provide the error message and how you send the payment. There are many reason why it could fail.
– nikos fotiadis
Nov 11 at 12:43
Can you also provide the error message and how you send the payment. There are many reason why it could fail.
– nikos fotiadis
Nov 11 at 12:43
Hi Nikos, thanks for the help, there was no error message.
– nono
Nov 11 at 23:33
Hi Nikos, thanks for the help, there was no error message.
– nono
Nov 11 at 23:33
add a comment |
1 Answer
1
active
oldest
votes
up vote
0
down vote
I figured it out myself.
The only one that can perform a token transfer is the owner of the token contract.
In my case, I was creating the contract first with another account, and passed the token address as parameter of the CrowdSale contract. So the CrowdSale contract was not the owner of the token contract.
I changed the contract like this:
pragma solidity ^0.4.24;
import "https://raw.githubusercontent.com/OpenZeppelin/openzeppelin-solidity/release-v2.0.0/contracts/crowdsale/Crowdsale.sol";
import "https://raw.githubusercontent.com/OpenZeppelin/openzeppelin-solidity/release-v2.0.0/contracts/token/ERC20/ERC20.sol";
import "browser/NourToken.sol";
contract NourCrowdSale is Crowdsale {
constructor (
uint256 rate,
address wallet) public
Crowdsale(rate, wallet, new NourToken()){}
}
Hope it will help somebody else :-)
add a comment |
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
0
down vote
I figured it out myself.
The only one that can perform a token transfer is the owner of the token contract.
In my case, I was creating the contract first with another account, and passed the token address as parameter of the CrowdSale contract. So the CrowdSale contract was not the owner of the token contract.
I changed the contract like this:
pragma solidity ^0.4.24;
import "https://raw.githubusercontent.com/OpenZeppelin/openzeppelin-solidity/release-v2.0.0/contracts/crowdsale/Crowdsale.sol";
import "https://raw.githubusercontent.com/OpenZeppelin/openzeppelin-solidity/release-v2.0.0/contracts/token/ERC20/ERC20.sol";
import "browser/NourToken.sol";
contract NourCrowdSale is Crowdsale {
constructor (
uint256 rate,
address wallet) public
Crowdsale(rate, wallet, new NourToken()){}
}
Hope it will help somebody else :-)
add a comment |
up vote
0
down vote
I figured it out myself.
The only one that can perform a token transfer is the owner of the token contract.
In my case, I was creating the contract first with another account, and passed the token address as parameter of the CrowdSale contract. So the CrowdSale contract was not the owner of the token contract.
I changed the contract like this:
pragma solidity ^0.4.24;
import "https://raw.githubusercontent.com/OpenZeppelin/openzeppelin-solidity/release-v2.0.0/contracts/crowdsale/Crowdsale.sol";
import "https://raw.githubusercontent.com/OpenZeppelin/openzeppelin-solidity/release-v2.0.0/contracts/token/ERC20/ERC20.sol";
import "browser/NourToken.sol";
contract NourCrowdSale is Crowdsale {
constructor (
uint256 rate,
address wallet) public
Crowdsale(rate, wallet, new NourToken()){}
}
Hope it will help somebody else :-)
add a comment |
up vote
0
down vote
up vote
0
down vote
I figured it out myself.
The only one that can perform a token transfer is the owner of the token contract.
In my case, I was creating the contract first with another account, and passed the token address as parameter of the CrowdSale contract. So the CrowdSale contract was not the owner of the token contract.
I changed the contract like this:
pragma solidity ^0.4.24;
import "https://raw.githubusercontent.com/OpenZeppelin/openzeppelin-solidity/release-v2.0.0/contracts/crowdsale/Crowdsale.sol";
import "https://raw.githubusercontent.com/OpenZeppelin/openzeppelin-solidity/release-v2.0.0/contracts/token/ERC20/ERC20.sol";
import "browser/NourToken.sol";
contract NourCrowdSale is Crowdsale {
constructor (
uint256 rate,
address wallet) public
Crowdsale(rate, wallet, new NourToken()){}
}
Hope it will help somebody else :-)
I figured it out myself.
The only one that can perform a token transfer is the owner of the token contract.
In my case, I was creating the contract first with another account, and passed the token address as parameter of the CrowdSale contract. So the CrowdSale contract was not the owner of the token contract.
I changed the contract like this:
pragma solidity ^0.4.24;
import "https://raw.githubusercontent.com/OpenZeppelin/openzeppelin-solidity/release-v2.0.0/contracts/crowdsale/Crowdsale.sol";
import "https://raw.githubusercontent.com/OpenZeppelin/openzeppelin-solidity/release-v2.0.0/contracts/token/ERC20/ERC20.sol";
import "browser/NourToken.sol";
contract NourCrowdSale is Crowdsale {
constructor (
uint256 rate,
address wallet) public
Crowdsale(rate, wallet, new NourToken()){}
}
Hope it will help somebody else :-)
answered Nov 11 at 23:32
nono
158212
158212
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53247997%2fcrowdsale-smart-contract-not-accepting-payment%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
You can try by yourself in the Remix IDE : remix.ethereum.org
– nono
Nov 11 at 10:52
Can you also provide the error message and how you send the payment. There are many reason why it could fail.
– nikos fotiadis
Nov 11 at 12:43
Hi Nikos, thanks for the help, there was no error message.
– nono
Nov 11 at 23:33