crypto-swag-contract
Advanced tools
Comparing version 0.4.0 to 0.6.0
@@ -67,10 +67,10 @@ { | ||
], | ||
"bytecode": "0x6060604052341561000f57600080fd5b336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506102db8061005e6000396000f300606060405260043610610062576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630900f01014610067578063445df0ac146100a05780638da5cb5b146100c9578063fdacd5761461011e575b600080fd5b341561007257600080fd5b61009e600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610141565b005b34156100ab57600080fd5b6100b3610224565b6040518082815260200191505060405180910390f35b34156100d457600080fd5b6100dc61022a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561012957600080fd5b61013f600480803590602001909190505061024f565b005b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415610220578190508073ffffffffffffffffffffffffffffffffffffffff1663fdacd5766001546040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b151561020b57600080fd5b6102c65a03f1151561021c57600080fd5b5050505b5050565b60015481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156102ac57806001819055505b505600a165627a7a723058204df546546d7026cdba4690c63794235e674ee2d640aff825c57c90809727c32a0029", | ||
"deployedBytecode": "0x606060405260043610610062576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630900f01014610067578063445df0ac146100a05780638da5cb5b146100c9578063fdacd5761461011e575b600080fd5b341561007257600080fd5b61009e600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610141565b005b34156100ab57600080fd5b6100b3610224565b6040518082815260200191505060405180910390f35b34156100d457600080fd5b6100dc61022a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561012957600080fd5b61013f600480803590602001909190505061024f565b005b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415610220578190508073ffffffffffffffffffffffffffffffffffffffff1663fdacd5766001546040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b151561020b57600080fd5b6102c65a03f1151561021c57600080fd5b5050505b5050565b60015481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156102ac57806001819055505b505600a165627a7a723058204df546546d7026cdba4690c63794235e674ee2d640aff825c57c90809727c32a0029", | ||
"bytecode": "0x6060604052341561000f57600080fd5b336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506102db8061005e6000396000f300606060405260043610610062576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630900f01014610067578063445df0ac146100a05780638da5cb5b146100c9578063fdacd5761461011e575b600080fd5b341561007257600080fd5b61009e600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610141565b005b34156100ab57600080fd5b6100b3610224565b6040518082815260200191505060405180910390f35b34156100d457600080fd5b6100dc61022a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561012957600080fd5b61013f600480803590602001909190505061024f565b005b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415610220578190508073ffffffffffffffffffffffffffffffffffffffff1663fdacd5766001546040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b151561020b57600080fd5b6102c65a03f1151561021c57600080fd5b5050505b5050565b60015481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156102ac57806001819055505b505600a165627a7a72305820f3edf3b59c2ab5e94831359c8c9905b8b154bd1ad8fcebdc16824eb8f5bf945a0029", | ||
"deployedBytecode": "0x606060405260043610610062576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff1680630900f01014610067578063445df0ac146100a05780638da5cb5b146100c9578063fdacd5761461011e575b600080fd5b341561007257600080fd5b61009e600480803573ffffffffffffffffffffffffffffffffffffffff16906020019091905050610141565b005b34156100ab57600080fd5b6100b3610224565b6040518082815260200191505060405180910390f35b34156100d457600080fd5b6100dc61022a565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b341561012957600080fd5b61013f600480803590602001909190505061024f565b005b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161415610220578190508073ffffffffffffffffffffffffffffffffffffffff1663fdacd5766001546040518263ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040180828152602001915050600060405180830381600087803b151561020b57600080fd5b6102c65a03f1151561021c57600080fd5b5050505b5050565b60015481565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614156102ac57806001819055505b505600a165627a7a72305820f3edf3b59c2ab5e94831359c8c9905b8b154bd1ad8fcebdc16824eb8f5bf945a0029", | ||
"sourceMap": "26:488:0:-;;;178:58;;;;;;;;221:10;213:5;;:18;;;;;;;;;;;;;;;;;;26:488;;;;;;", | ||
"deployedSourceMap": "26:488:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;347:165;;;;;;;;;;;;;;;;;;;;;;;;;;;;74:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;50:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;240:103;;;;;;;;;;;;;;;;;;;;;;;;;;347:165;409:19;161:5;;;;;;;;;;;147:19;;:10;:19;;;143:26;;;442:11;409:45;;460:8;:21;;;482:24;;460:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;143:26;347:165;;:::o;74:36::-;;;;:::o;50:20::-;;;;;;;;;;;;;:::o;240:103::-;161:5;;;;;;;;;;;147:19;;:10;:19;;;143:26;;;329:9;302:24;:36;;;;143:26;240:103;:::o", | ||
"source": "pragma solidity ^0.4.17;\n\ncontract Migrations {\n address public owner;\n uint public last_completed_migration;\n\n modifier restricted() {\n if (msg.sender == owner) _;\n }\n\n function Migrations() public {\n owner = msg.sender;\n }\n\n function setCompleted(uint completed) public restricted {\n last_completed_migration = completed;\n }\n\n function upgrade(address new_address) public restricted {\n Migrations upgraded = Migrations(new_address);\n upgraded.setCompleted(last_completed_migration);\n }\n}\n", | ||
"sourcePath": "/Users/nicolasmouso/Documents/Mule/Connect/crypto-swag-contract/contracts/Migrations.sol", | ||
"sourcePath": "/home/mcampo/development/projects/crypto-swag-contract/contracts/Migrations.sol", | ||
"ast": { | ||
"absolutePath": "/Users/nicolasmouso/Documents/Mule/Connect/crypto-swag-contract/contracts/Migrations.sol", | ||
"absolutePath": "/home/mcampo/development/projects/crypto-swag-contract/contracts/Migrations.sol", | ||
"exportedSymbols": { | ||
@@ -186,3 +186,3 @@ "Migrations": [ | ||
"overloadedDeclarations": [], | ||
"referencedDeclaration": 93, | ||
"referencedDeclaration": 310, | ||
"src": "147:3:0", | ||
@@ -290,3 +290,3 @@ "typeDescriptions": { | ||
"overloadedDeclarations": [], | ||
"referencedDeclaration": 93, | ||
"referencedDeclaration": 310, | ||
"src": "221:3:0", | ||
@@ -723,3 +723,3 @@ "typeDescriptions": { | ||
"legacyAST": { | ||
"absolutePath": "/Users/nicolasmouso/Documents/Mule/Connect/crypto-swag-contract/contracts/Migrations.sol", | ||
"absolutePath": "/home/mcampo/development/projects/crypto-swag-contract/contracts/Migrations.sol", | ||
"exportedSymbols": { | ||
@@ -835,3 +835,3 @@ "Migrations": [ | ||
"overloadedDeclarations": [], | ||
"referencedDeclaration": 93, | ||
"referencedDeclaration": 310, | ||
"src": "147:3:0", | ||
@@ -939,3 +939,3 @@ "typeDescriptions": { | ||
"overloadedDeclarations": [], | ||
"referencedDeclaration": 93, | ||
"referencedDeclaration": 310, | ||
"src": "221:3:0", | ||
@@ -1377,3 +1377,3 @@ "typeDescriptions": { | ||
"schemaVersion": "2.0.0", | ||
"updatedAt": "2018-03-06T22:34:21.679Z" | ||
"updatedAt": "2018-04-29T13:29:41.180Z" | ||
} |
{ | ||
"name": "crypto-swag-contract", | ||
"version": "0.4.0", | ||
"version": "0.6.0", | ||
"scripts": { | ||
@@ -8,2 +8,4 @@ "lint": "eslint config .", | ||
"createContract": "node ./src/createContract.js", | ||
"finishContract": "node ./src/finishContract.js", | ||
"signContract": "node ./src/signContract.js", | ||
"truffle:compile": "truffle compile", | ||
@@ -10,0 +12,0 @@ "truffle:deploy": "truffle deploy", |
@@ -15,3 +15,3 @@ const Web3 = require('web3'); | ||
const value = '1'; | ||
const buyerId = 'cdb963a0-4b13-45ad-ab99-3a0274cc8503'; | ||
const buyerId = '22209437-9400-4a8f-bdc3-a37427494675'; | ||
const productId = 'MU00-5024-DGH-S'; | ||
@@ -34,33 +34,2 @@ | ||
const initialBalance = await contract.methods.getBalance().call({ from: buyerAddress }); | ||
console.log('Initial balance:', web3.utils.fromWei(initialBalance, 'ether')); | ||
const contractBuyerId = await contract.methods.buyerId().call({ from: buyerAddress }); | ||
console.log('Contract buyer id:', contractBuyerId); | ||
const contractProductId = await contract.methods.productId().call({ from: buyerAddress }); | ||
console.log('Product id:', contractProductId); | ||
// Fulfill delivery | ||
const signatureParts = await signServerSide(buyerAddress, contractAddress); | ||
try { | ||
// await contract.methods.cancel().send({ from: buyerAddress, gas: 500000, gasPrice: 0 }); | ||
await contract.methods.fulfillDelivery(signatureParts.v, signatureParts.r, signatureParts.s).send({ from: sellerAddress, gas: 500000, gasPrice: 0 }); | ||
} catch(err) { | ||
console.log('Failed to fulfillDelivery. Invalid signature'); | ||
} | ||
const finalBalance = await contract.methods.getBalance().call({ from: buyerAddress }); | ||
console.log('Final balance:', web3.utils.fromWei(finalBalance, 'ether')); | ||
const finalBuyerBalance = await web3.eth.getBalance(buyerAddress); | ||
const finalSellerBalance = await web3.eth.getBalance(sellerAddress); | ||
console.log('Final buyer balance:', web3.utils.fromWei(finalBuyerBalance, 'ether')); | ||
console.log('Final seller balance:', web3.utils.fromWei(finalSellerBalance, 'ether')); | ||
const sellerProfit = web3.utils.fromWei(`${finalSellerBalance - initialSellerBalance}`, 'ether'); | ||
console.log('Seller profit', sellerProfit); | ||
console.log('Result:', finalBalance == 0 && sellerProfit == value ? '=)' : '=('); | ||
async function createContract(buyerAddress, sellerAddress, productId, buyerId, value) { | ||
@@ -80,29 +49,2 @@ const contract = new web3.eth.Contract(order.abi) | ||
} | ||
async function signServerSide(address, message) { | ||
let messageHash = web3.utils.soliditySha3(message) | ||
const signature = await web3.eth.sign(messageHash, address); | ||
return splitSignature(signature); | ||
} | ||
async function signClientSide(privateKey, message) { | ||
const Account = require('eth-lib/lib/account') | ||
let messageHash = web3.utils.soliditySha3(message) | ||
const ethMessage = web3.utils.toHex('\x19Ethereum Signed Message:\n32') + messageHash.substring(2) | ||
const hash = web3.utils.sha3(ethMessage) | ||
const signature = Account.sign(hash, privateKey) | ||
return splitSignature(signature); | ||
} | ||
function splitSignature(signature) { | ||
const v = web3.utils.hexToNumber('0x' + signature.slice(130, 132)); | ||
return { | ||
r: signature.slice(0, 66), | ||
s: '0x' + signature.slice(66, 130), | ||
v: v >= 27 ? v : v + 27 | ||
}; | ||
} | ||
})(); |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
New author
Supply chain riskA new npm collaborator published a version of the package for the first time. New collaborators are usually benign additions to a project, but do indicate a change to the security surface area of a package.
Found 1 instance in 1 package
14
208865
5107
1