Skip to content

Commit d95f6cb

Browse files
committed
Update DB schema
1 parent 0f3aa44 commit d95f6cb

File tree

5 files changed

+72
-43
lines changed

5 files changed

+72
-43
lines changed

package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
"sequelize": "^4.31.2",
3131
"sqlite3": "^3.1.13",
3232
"web3": "^0.20.4",
33-
"wyvern-js": "file:../wyvern-js"
33+
"wyvern-js": "file:../wyvern-js",
34+
"wyvern-schemas": "file:../wyvern-schemas"
3435
}
3536
}

server/db.js

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,8 @@ const Order = sequelize.define('order', {
2626
howToCall: {type: Sequelize.TEXT, allowNull: false},
2727
calldata: {type: Sequelize.TEXT, allowNull: false},
2828
replacementPattern: {type: Sequelize.TEXT, allowNull: false},
29-
metadataHash: {type: Sequelize.TEXT, allowNull: false},
29+
staticTarget: {type: Sequelize.TEXT, allowNull: false},
30+
staticExtradata: {type: Sequelize.TEXT, allowNull: false},
3031
paymentToken: {type: Sequelize.TEXT, allowNull: false},
3132
basePrice: {type: Sequelize.TEXT, allowNull: false},
3233
extra: {type: Sequelize.TEXT, allowNull: false},
@@ -35,7 +36,8 @@ const Order = sequelize.define('order', {
3536
salt: {type: Sequelize.TEXT, allowNull: false},
3637
v: {type: Sequelize.TEXT, allowNull: false},
3738
r: {type: Sequelize.TEXT, allowNull: false},
38-
s: {type: Sequelize.TEXT, allowNull: false}
39+
s: {type: Sequelize.TEXT, allowNull: false},
40+
cancelledOrFinalized: {type: Sequelize.BOOLEAN, allowNull: false}
3941
})
4042

4143
const encodeOrder = (order) => ({
@@ -53,7 +55,8 @@ const encodeOrder = (order) => ({
5355
howToCall: order.howToCall,
5456
calldata: order.calldata,
5557
replacementPattern: order.replacementPattern,
56-
metadataHash: order.metadataHash,
58+
staticTarget: order.staticTarget,
59+
staticExtradata: order.staticExtradata,
5760
paymentToken: order.paymentToken,
5861
basePrice: order.basePrice,
5962
extra: order.extra,
@@ -62,7 +65,8 @@ const encodeOrder = (order) => ({
6265
salt: order.salt,
6366
v: order.v,
6467
r: order.r,
65-
s: order.s
68+
s: order.s,
69+
cancelledOrFinalized: false
6670
})
6771

6872
const decodeOrder = (order) => ({
@@ -80,7 +84,8 @@ const decodeOrder = (order) => ({
8084
howToCall: order.howToCall,
8185
calldata: order.calldata,
8286
replacementPattern: order.replacementPattern,
83-
metadataHash: order.metadataHash,
87+
staticTarget: order.staticTarget,
88+
staticExtradata: order.staticExtradata,
8489
paymentToken: order.paymentToken,
8590
basePrice: order.basePrice,
8691
extra: order.extra,
@@ -89,7 +94,8 @@ const decodeOrder = (order) => ({
8994
salt: order.salt,
9095
v: order.v,
9196
r: order.r,
92-
s: order.s
97+
s: order.s,
98+
cancelledOrFinalized: order.cancelledOrFinalized
9399
})
94100

95101
module.exports = {

server/index.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ app.use((req, res, next) => {
3232
const router = express.Router()
3333

3434
router.get('/orders', (req, res) => {
35-
return Order.findAll().then(orders => {
35+
return Order.findAll({where: {cancelledOrFinalized: false}}).then(orders => {
3636
res.json({result: orders.map(decodeOrder), error: null})
3737
}).catch(err => {
3838
fail(req, res, 500, err)

server/scan.js

Lines changed: 24 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,48 @@
1+
const Web3 = require('web3')
2+
const { encodeCall } = require('wyvern-schemas')
13
const { WyvernProtocol } = require('wyvern-js')
24

35
const { Order } = require('./db.js')
46
const log = require('./logging.js')
57

68
const scan = (provider, network) => {
79
const protocolInstance = new WyvernProtocol(provider, { network })
10+
const web3 = new Web3(provider)
811
const scanFunc = () => {
9-
Order.findAll().then(orders => {
12+
Order.findAll({where: {cancelledOrFinalized: false}}).then(orders => {
1013
orders.map(async order => {
1114
const valid = await protocolInstance.wyvernExchange.validateOrder_.callAsync(
12-
[order.exchange, order.maker, order.taker, order.feeRecipient, order.target, order.paymentToken],
15+
[order.exchange, order.maker, order.taker, order.feeRecipient, order.target, order.staticTarget, order.paymentToken],
1316
[order.makerFee, order.takerFee, order.basePrice, order.extra, order.listingTime, order.expirationTime, order.salt],
1417
order.side,
1518
order.saleKind,
1619
order.howToCall,
1720
order.calldata,
1821
order.replacementPattern,
19-
order.metadataHash,
22+
order.staticExtradata,
2023
parseInt(order.v),
2124
order.r,
2225
order.s)
2326
if (!valid) {
24-
order.destroy().then(() => {
25-
log.info('Order ' + order.hash + ' is invalid, removed from orderbook')
27+
order.cancelledOrFinalized = true
28+
order.save().then(() => {
29+
log.info('Order ' + order.hash + ' marked cancelled or finalized')
2630
})
31+
} else {
32+
/*
33+
if (order.side === '1') {
34+
const proxyABI = {'constant': false, 'inputs': [{'name': 'dest', 'type': 'address'}, {'name': 'howToCall', 'type': 'uint8'}, {'name': 'calldata', 'type': 'bytes'}], 'name': 'proxy', 'outputs': [{'name': 'success', 'type': 'bool'}], 'payable': false, 'stateMutability': 'nonpayable', 'type': 'function'}
35+
const calldata = encodeCall(proxyABI, [order.target, order.howToCall, order.calldata])
36+
const proxy = await protocolInstance.wyvernProxyRegistry.proxies.callAsync(order.maker)
37+
web3.eth.call({
38+
from: order.maker,
39+
to: proxy,
40+
data: calldata
41+
}, (err, res) => {
42+
console.log(err, res)
43+
})
44+
}
45+
*/
2746
}
2847
})
2948
})

yarn.lock

Lines changed: 33 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -23,10 +23,10 @@
2323
web3 "^0.20.0"
2424

2525
"@0xproject/abi-gen@^0.1.1":
26-
version "0.1.2"
27-
resolved "https://registry.yarnpkg.com/@0xproject/abi-gen/-/abi-gen-0.1.2.tgz#a74baa088f94ff83431573b5a3e010ccbb5ba300"
26+
version "0.1.5"
27+
resolved "https://registry.yarnpkg.com/@0xproject/abi-gen/-/abi-gen-0.1.5.tgz#b3bfaacff75c47ce37e2add6e0098d075b9ea191"
2828
dependencies:
29-
"@0xproject/utils" "^0.2.0"
29+
"@0xproject/utils" "^0.2.3"
3030
chalk "^2.3.0"
3131
glob "^7.1.2"
3232
handlebars "^4.0.11"
@@ -55,17 +55,17 @@
5555
valid-url "^1.0.9"
5656

5757
"@0xproject/json-schemas@^0.7.2", "@0xproject/json-schemas@^0.7.3":
58-
version "0.7.3"
59-
resolved "https://registry.yarnpkg.com/@0xproject/json-schemas/-/json-schemas-0.7.3.tgz#8a532adc16e77519fc66b46d2dfd868b5506a4a4"
58+
version "0.7.6"
59+
resolved "https://registry.yarnpkg.com/@0xproject/json-schemas/-/json-schemas-0.7.6.tgz#2ec7043901a0f18b68e8e961f1710378b2fb78d7"
6060
dependencies:
6161
jsonschema "^1.2.0"
6262
lodash.values "^4.3.0"
6363

6464
"@0xproject/types@^0.1.3":
65-
version "0.1.4"
66-
resolved "https://registry.yarnpkg.com/@0xproject/types/-/types-0.1.4.tgz#fadbcdd9dc57d96453ca164fa5c8fe048a7ddde6"
65+
version "0.1.7"
66+
resolved "https://registry.yarnpkg.com/@0xproject/types/-/types-0.1.7.tgz#8a5fa1c21bc8f1e8284512796d32027603dd54aa"
6767
dependencies:
68-
"@0xproject/utils" "^0.2.0"
68+
"@0xproject/utils" "^0.2.3"
6969
web3 "^0.20.0"
7070

7171
"@0xproject/utils@^0.1.3":
@@ -76,19 +76,19 @@
7676
js-sha3 "^0.7.0"
7777
lodash "^4.17.4"
7878

79-
"@0xproject/utils@^0.2.0":
80-
version "0.2.0"
81-
resolved "https://registry.yarnpkg.com/@0xproject/utils/-/utils-0.2.0.tgz#0a6f88dd398872211b941cb6ce75094499894f11"
79+
"@0xproject/utils@^0.2.0", "@0xproject/utils@^0.2.3":
80+
version "0.2.3"
81+
resolved "https://registry.yarnpkg.com/@0xproject/utils/-/utils-0.2.3.tgz#583df7e3e0284e1e4e163dcd7f0af0bad0bb9650"
8282
dependencies:
8383
bignumber.js "~4.1.0"
8484
js-sha3 "^0.7.0"
8585
lodash "^4.17.4"
8686

8787
"@0xproject/web3-wrapper@^0.1.4":
88-
version "0.1.5"
89-
resolved "https://registry.yarnpkg.com/@0xproject/web3-wrapper/-/web3-wrapper-0.1.5.tgz#8e33c6763fdf08383d84a66a3d680c092fc59106"
88+
version "0.1.8"
89+
resolved "https://registry.yarnpkg.com/@0xproject/web3-wrapper/-/web3-wrapper-0.1.8.tgz#ae6e8d30872ab65fb1f0078df5edc1d30d34b33c"
9090
dependencies:
91-
"@0xproject/utils" "^0.2.0"
91+
"@0xproject/utils" "^0.2.3"
9292
lodash "^4.17.4"
9393
web3 "^0.20.0"
9494

@@ -97,12 +97,12 @@
9797
resolved "https://registry.yarnpkg.com/@types/geojson/-/geojson-1.0.6.tgz#3e02972728c69248c2af08d60a48cbb8680fffdf"
9898

9999
"@types/lodash@^4.14.92":
100-
version "4.14.94"
101-
resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.94.tgz#c4166f7d8291691a0d34fa41afb15d0fe755187d"
100+
version "4.14.98"
101+
resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.98.tgz#aaf012ae443e657e7885e605a4c1b340db160609"
102102

103103
"@types/node@*", "@types/node@^9.3.0":
104-
version "9.3.0"
105-
resolved "https://registry.yarnpkg.com/@types/node/-/node-9.3.0.tgz#3a129cda7c4e5df2409702626892cb4b96546dd5"
104+
version "9.4.0"
105+
resolved "https://registry.yarnpkg.com/@types/node/-/node-9.4.0.tgz#b85a0bcf1e1cc84eb4901b7e96966aedc6f078d1"
106106

107107
abbrev@1:
108108
version "1.1.1"
@@ -945,8 +945,8 @@ doctrine@^0.7.2:
945945
isarray "0.0.1"
946946

947947
domain-browser@^1.1.1:
948-
version "1.1.7"
949-
resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.1.7.tgz#867aa4b093faa05f1de08c06f4d7b21fdf8698bc"
948+
version "1.2.0"
949+
resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda"
950950

951951
952952
version "1.0.0"
@@ -2737,8 +2737,8 @@ [email protected]:
27372737
unpipe "1.0.0"
27382738

27392739
rc@^1.1.7:
2740-
version "1.2.4"
2741-
resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.4.tgz#a0f606caae2a3b862bbd0ef85482c0125b315fa3"
2740+
version "1.2.5"
2741+
resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.5.tgz#275cd687f6e3b36cc756baa26dfee80a790301fd"
27422742
dependencies:
27432743
deep-extend "~0.4.0"
27442744
ini "~1.3.0"
@@ -2918,8 +2918,8 @@ safe-replace@^1.0.2:
29182918
resolved "https://registry.yarnpkg.com/safe-replace/-/safe-replace-1.0.2.tgz#b181ab4095acdf6ab0a8f840517491ca8a9922ba"
29192919

29202920
secp256k1@^3.0.1:
2921-
version "3.4.0"
2922-
resolved "https://registry.yarnpkg.com/secp256k1/-/secp256k1-3.4.0.tgz#1c905b256fa4ae5b9cc170e672dd59b4c5de46a4"
2921+
version "3.5.0"
2922+
resolved "https://registry.yarnpkg.com/secp256k1/-/secp256k1-3.5.0.tgz#677d3b8a8e04e1a5fa381a1ae437c54207b738d0"
29232923
dependencies:
29242924
bindings "^1.2.1"
29252925
bip66 "^1.1.3"
@@ -2957,8 +2957,8 @@ [email protected]:
29572957
statuses "~1.3.1"
29582958

29592959
sequelize@^4.31.2:
2960-
version "4.32.1"
2961-
resolved "https://registry.yarnpkg.com/sequelize/-/sequelize-4.32.1.tgz#6761d0af31e2fa9ea61081a8b0f6a0c56dcec2a0"
2960+
version "4.32.2"
2961+
resolved "https://registry.yarnpkg.com/sequelize/-/sequelize-4.32.2.tgz#de5924f6b904cabfbde1f9f8886d1be14ecf9e42"
29622962
dependencies:
29632963
bluebird "^3.4.6"
29642964
cls-bluebird "^2.0.1"
@@ -3315,8 +3315,8 @@ terraformer@~1.0.5:
33153315
"@types/geojson" "^1.0.0"
33163316

33173317
timers-browserify@^2.0.4:
3318-
version "2.0.4"
3319-
resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.4.tgz#96ca53f4b794a5e7c0e1bd7cc88a372298fa01e6"
3318+
version "2.0.6"
3319+
resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.6.tgz#241e76927d9ca05f4d959819022f5b3664b64bae"
33203320
dependencies:
33213321
setimmediate "^1.0.4"
33223322

@@ -3558,8 +3558,8 @@ validate-npm-package-license@^3.0.1:
35583558
spdx-expression-parse "~1.0.0"
35593559

35603560
validator@^9.1.0:
3561-
version "9.2.0"
3562-
resolved "https://registry.yarnpkg.com/validator/-/validator-9.2.0.tgz#ad216eed5f37cac31a6fe00ceab1f6b88bded03e"
3561+
version "9.4.0"
3562+
resolved "https://registry.yarnpkg.com/validator/-/validator-9.4.0.tgz#c503ef88f7e6b8fb7688599267b309482d81ae60"
35633563

35643564
vary@~1.1.2:
35653565
version "1.1.2"
@@ -3703,6 +3703,9 @@ wrappy@1:
37033703
web3 "^0.20.4"
37043704
webpack "^3.10.0"
37053705

3706+
"wyvern-schemas@file:../wyvern-schemas":
3707+
version "0.1.0"
3708+
37063709
37073710
version "1.0.0"
37083711
resolved "https://registry.yarnpkg.com/x-xss-protection/-/x-xss-protection-1.0.0.tgz#898afb93869b24661cf9c52f9ee8db8ed0764dd9"

0 commit comments

Comments
 (0)