X-Git-Url: http://git.osdn.net/view?p=bytom%2Fvapor.git;a=blobdiff_plain;f=protocol%2Fvm%2Fvmutil%2Fscript.go;fp=protocol%2Fvm%2Fvmutil%2Fscript.go;h=84461428e2d1dc1850347b202544e561b0a246a1;hp=21cc0d4b4307a0fbd08b366f922ffd92ea05e797;hb=c105e64c3ce37e566bf4ad59b53037782d57ae99;hpb=c24c17485a3b29eeafd5a13a233f0950ff2f3d84 diff --git a/protocol/vm/vmutil/script.go b/protocol/vm/vmutil/script.go index 21cc0d4b..84461428 100644 --- a/protocol/vm/vmutil/script.go +++ b/protocol/vm/vmutil/script.go @@ -167,7 +167,7 @@ func P2WMCProgram(magneticContractArgs MagneticContractArgs) ([]byte, error) { // sellerKey: PublicKey) locks valueAmount of valueAsset { // clause partialTrade(exchangeAmount: Amount) { // define actualAmount: Integer = exchangeAmount * ratioDenominator / ratioNumerator -// verify actualAmount > 0 && actualAmount < valueAmount +// verify actualAmount >= 0 && actualAmount < valueAmount // define receiveAmount: Integer = exchangeAmount * 999 / 1000 // lock receiveAmount of requestedAsset with sellerProgram // lock valueAmount-actualAmount of valueAsset with standardProgram @@ -176,7 +176,7 @@ func P2WMCProgram(magneticContractArgs MagneticContractArgs) ([]byte, error) { // clause fullTrade() { // define requestedAmount: Integer = valueAmount * ratioNumerator / ratioDenominator // define requestedAmount: Integer = requestedAmount * 999 / 1000 -// verify requestedAmount > 0 +// verify requestedAmount >= 0 // lock requestedAmount of requestedAsset with sellerProgram // unlock valueAmount of valueAsset // } @@ -208,7 +208,7 @@ func P2WMCProgram(magneticContractArgs MagneticContractArgs) ([]byte, error) { // AMOUNT [... exchangeAmount sellerKey standardProgram sellerProgram requestedAsset actualAmount valueAmount] // OVER [... exchangeAmount sellerKey standardProgram sellerProgram requestedAsset actualAmount valueAmount actualAmount] // 0 [... exchangeAmount sellerKey standardProgram sellerProgram requestedAsset actualAmount valueAmount actualAmount 0] -// GREATERTHAN [... exchangeAmount sellerKey standardProgram sellerProgram requestedAsset actualAmount valueAmount (actualAmount > 0)] +// GREATERTHANOREQUAL [... exchangeAmount sellerKey standardProgram sellerProgram requestedAsset actualAmount valueAmount (actualAmount > 0)] // 2 [... exchangeAmount sellerKey standardProgram sellerProgram requestedAsset actualAmount valueAmount (actualAmount > 0) 2] // PICK [... exchangeAmount sellerKey standardProgram sellerProgram requestedAsset actualAmount valueAmount (actualAmount > 0) actualAmount] // 2 [... exchangeAmount sellerKey standardProgram sellerProgram requestedAsset actualAmount valueAmount (actualAmount > 0) actualAmount 2] @@ -256,7 +256,7 @@ func P2WMCProgram(magneticContractArgs MagneticContractArgs) ([]byte, error) { // MULFRACTION [... sellerKey standardProgram sellerProgram requestedAsset requestedAmount] // DUP [... sellerKey standardProgram sellerProgram requestedAsset requestedAmount requestedAmount] // 0 [... sellerKey standardProgram sellerProgram requestedAsset requestedAmount requestedAmount 0] -// GREATERTHAN [... sellerKey standardProgram sellerProgram requestedAsset requestedAmount (requestedAmount > 0)] +// GREATERTHANOREQUAL [... sellerKey standardProgram sellerProgram requestedAsset requestedAmount (requestedAmount > 0)] // VERIFY [... sellerKey standardProgram sellerProgram requestedAsset requestedAmount] // FROMALTSTACK [... sellerKey standardProgram sellerProgram requestedAsset requestedAmount ] // SWAP [... sellerKey standardProgram sellerProgram requestedAsset requestedAmount] @@ -311,7 +311,7 @@ func P2MCProgram(magneticContractArgs MagneticContractArgs) ([]byte, error) { builder.AddOp(vm.OP_AMOUNT) builder.AddOp(vm.OP_OVER) builder.AddOp(vm.OP_0) - builder.AddOp(vm.OP_GREATERTHAN) + builder.AddOp(vm.OP_GREATERTHANOREQUAL) builder.AddOp(vm.OP_2) builder.AddOp(vm.OP_PICK) builder.AddOp(vm.OP_ROT) @@ -356,7 +356,7 @@ func P2MCProgram(magneticContractArgs MagneticContractArgs) ([]byte, error) { builder.AddOp(vm.OP_MULFRACTION) builder.AddOp(vm.OP_DUP) builder.AddOp(vm.OP_0) - builder.AddOp(vm.OP_GREATERTHAN) + builder.AddOp(vm.OP_GREATERTHANOREQUAL) builder.AddOp(vm.OP_VERIFY) builder.AddOp(vm.OP_FROMALTSTACK) builder.AddOp(vm.OP_SWAP)