Habe Bibliotheken zum ersten Mal ausprobiert, wirklich schlechte Erfahrungen damit gemacht. Ich brauche etwas Hilfe, um meine Verträge zwischen Bibliotheken zum Laufen zu bringen.
Bibliothek 1:
pragma solidity ^0.4.0;
library IntExtended{
function increment(uint _self) returns (uint){
return _self+1;
}
function decrement(uint _self) returns(uint){
return _self-1;
}
function incrementByValue(uint _self,uint _value) returns (uint){
return _self + _value;
}
function decrementByValue(uint _self,uint _value) returns (uint){
return _self -_value;
}
}
Datei, die damit funktioniert, ich weiß nicht, wie Sie es nennen, zweite Bibliothek?
pragma solidity ^0.4.0;
import "browser/Library.sol";
contract TestLibrary{
using IntExtended for uint;
function testIncrement(uint _base) returns (uint){
return IntExtended.increment(_base);
}
function testDecrement(uint _base) returns (uint){
return IntExtended.decrement(_base);
}
function testIncrementByValue(uint _base,uint _value) returns(uint){
return _base.incrementByValue(_value);
}
function testDecrementByValue(uint _base, uint _value) returns (uint){
return _base.decrementByValue(_value);
}
}
Die Bibliothek IntExtended
funktioniert nicht, aber der Vertrag, der auf IntExtended verweist, funktioniert.
Sie haben in Ihrem Speicher kein Uint definiert, um die Bibliothek zu verwenden, auch Ihre Bibliotheksfunktionen können rein sein.
unterusing IntExtended for uint
hinzufügen
uint myUint
und dann können Sie die Bibliotheksfunktionen wie aufrufen
myUint.increment()
oder_base.increment()
Edit: Im Remix hochgeladen
pragma solidity ^0.4.0;
library IntExtended{
function increment(uint _self) returns (uint){
return _self+1;
}
}
contract TestLibrary{
using IntExtended for uint;
function testIncrement(uint _base) returns (uint){
return _base.increment();
}
}
0x1 Transaction mined and execution succeed
decoded input {
"uint256 _base": "5"
}
decoded output {
"0": "uint256: 6"
}
Benutzer19510
return IntExtended.increment(_base)
sollte seinreturn _base.increment()
, oder? Und was meinst du mit deinem letzten Satz? Was genau funktioniert und was nicht? (Und für das Zeug, das nicht funktioniert, was genau bedeutet das? Erhalten Sie eine Fehlermeldung? Ein falsches Ergebnis?)Durian Jaykin
Benutzer19510
Benutzer19510
Durian Jaykin