Remix (Browser Solidity) stellt meinen Vertrag nicht bereit (über Metamask)

Ich versuche, einen neuen Vertrag zum Testen im Ropsten-Netzwerk bereitzustellen. Ich verwende Remix und Metamask, aber aus irgendeinem Grund kann ich injiziertes Web3 nicht auswählen (was früher die Standardeinstellung war) und kann daher nicht bereitgestellt werden.

Wer kann helfen?

Code ist:

Pragma Solidität ^0.4.11;

Vertrag ZorgPolisBasic {

address public patient;
address public huisarts;
address public specialist;
address public verzekeraar;
bool public verzekeraaraanvullenbasis;
bool public verzekeraaraanvullenspecialist;
bool public huisartsuitgevoerd;
bool public specialistuitgevoerd;
bool public doorverwijzen;
uint256 public huisartsentarief = 1 ether;
uint256 public specialistentarief = 2 ether;
string public akkoordgeven;
string public fraude;
string public artsendecla;

//alle parameters op 0
function ZorgPolisBasic(){
patient = msg.sender;
huisarts = 0x33E225e01bba3AA05ADDCD8F38142a8d47F9dC37;
specialist = 0xAB7fAE73effD38B5EdaD696E1fb062b0F6863459;
verzekeraar = 0xa8323F5fBcf1980B2093a633cF03020900B81d53;
verzekeraaraanvullenbasis = true;
fraude = "none";
}

//hier claimt de huisarts zijn consult
function huisartsclaim(){
huisartsuitgevoerd = true;
doorverwijzen = false;
akkoordgeven = "bevestig behandeling huisarts";
}

//hier verwijst huisarts door en claimt tegelijk zijn consult   
function huisartsdoorverwijzing(){
huisartsuitgevoerd = true;
doorverwijzen = true;
verzekeraaraanvullenspecialist = true;
akkoordgeven = "bevestig behandeling huisarts";
}

//deze twee bevestigen danwel ontkennen de behandeling huisarts
function patientbevestigdHA (){
if (huisartsuitgevoerd==true){
    huisarts.transfer(huisartsentarief);
    verzekeraaraanvullenbasis = true;
    huisartsuitgevoerd = false;
    akkoordgeven = "";
    artsendecla = "";
}else{
artsendecla = "Huisarts heeft nog niet geclaimd";   
}
}

function patientontkentHA (){
if (huisartsuitgevoerd==true){
fraude = "patient ontkent behandeling huisarts";
huisartsuitgevoerd = false;
doorverwijzen = false;
akkoordgeven = "";
}else{
}
}

//hier claimt de specialist
function specialistclaim(){
if (doorverwijzen==false){
    fraude = "specialist claimt zonder doorverwijzing";
        }else{
    specialistuitgevoerd = true;
    akkoordgeven = "bevestig behandeling specialist";
}
}

//deze twee bevestigen danwel ontkennen de behandeling specialist
function patientbevestigdS (){
if (specialistuitgevoerd==true){
    specialist.transfer(specialistentarief);
    specialistuitgevoerd = false;
    akkoordgeven = "";
    artsendecla = "";
}else{
artsendecla = "Specialist heeft nog niet geclaimd";
}
}

function patientontkentS() {
if (specialistuitgevoerd==true){
fraude = "patient ontkent behandeling specialist";
specialistuitgevoerd = false;
akkoordgeven = "";
}else{

}
}

function aanvullenverzekeraar () payable{
verzekeraaraanvullenbasis = false;
verzekeraaraanvullenspecialist = false;
}

function clearstatussen (){
verzekeraaraanvullenbasis = false;
verzekeraaraanvullenspecialist = false;
huisartsuitgevoerd = false;
specialistuitgevoerd = false;
doorverwijzen = false;
akkoordgeven = "";
fraude = "none";
artsendecla = "";
}

}

Wenn ich create pushe, bekomme ich den Fehler: Callback enthält kein Ergebnis Error: SyntaxError: Unexpected token < in JSON at position 0. Ich habe keine Fehler in meiner Kompilierung und es hat immer gut funktioniert (habe Metamask 3.6.5)
Die Interaktion mit bestehenden Smart Contracts mit Metamask läuft einwandfrei. Es ist wirklich das Bereitstellen/Erstellen intelligenter Verträge durch Remix.
Bitte füge hier den Sourcecode oder Gist deinem Vertrag hinzu - sonst ist es schwer zu helfen. Haben Sie zuerst versucht, in JavascriptVM zu testen? Konstruktorargumente erforderlich und korrekt formatiert? Außerdem: Verbinden Sie sich mit einem privaten Netz, über Geth oder einen anderen Knoten oder direkt über Standard-Metamask-Einstellungen mit einem Testnetz oder einer Hauptkette?
Direkte Verbindung über die Standard-Metamaskeneinstellung zu Ropsten
Ich erhalte keine Kompilierungsfehler (der Vertrag umfasst etwas mehr als 100 Zeilen, aber das sollte kein Problem sein, richtig.)
Ich habe das gleiche Problem wie du, ich habe viele Tricks ohne Erfolg versucht

Antworten (1)

Wie ich bereits sagte, als Sie im MetaMask-Slack-Channel gefragt haben, tritt dieser Parsing-Fehler auf, wenn der RPC-Anbieter ein schlechtes Ergebnis zurückgibt. MetaMask sollte diese Fehlermeldung verbessern, ich werde ein Problem dazu eröffnen.

Um zu diagnostizieren, was mit dem Anbieter nicht stimmt, müssen Sie die Hintergrundkonsole öffnen und die schlechte Netzwerkantwort überprüfen: https://github.com/#background-logs-chrome

Ich habe hier ein Problem für diese verwirrende Fehlermeldung eröffnet: github.com/MetaMask/metamask-plugin/issues/1477