Skip to content

Commit 09cd114

Browse files
committed
fix linting errors
1 parent f167cbc commit 09cd114

File tree

2 files changed

+128
-119
lines changed

2 files changed

+128
-119
lines changed

scripts/performance-test-seq.ts

+73-68
Original file line numberDiff line numberDiff line change
@@ -7,88 +7,93 @@ const TOTAL_NUM_CALLS = 100
77
const RATE_LIMIT_PER_SECOND = 100
88

99
function delay(ms) {
10-
return new Promise(resolve => setTimeout(resolve, ms));
10+
return new Promise((resolve) => setTimeout(resolve, ms))
1111
}
1212

1313
async function main() {
14-
const vrfConsumer = await ethers.getContract('VRFConsumer')
14+
const vrfConsumer = await ethers.getContract('VRFConsumer')
1515

16-
const keyHash = '0x47ede773ef09e40658e643fe79f8d1a27c0aa6eb7251749b268f829ea49f2024'
17-
const callbackGasLimit = 500_000
18-
const numWords = 1
19-
const value = ethers.utils.parseEther('1.0')
16+
const keyHash = '0x47ede773ef09e40658e643fe79f8d1a27c0aa6eb7251749b268f829ea49f2024'
17+
const callbackGasLimit = 500_000
18+
const numWords = 1
19+
const value = ethers.utils.parseEther('1.0')
2020

21-
const providerUrl = 'https://baobab01.fautor.app'
22-
const provider = new ethers.providers.JsonRpcProvider(providerUrl)
21+
const providerUrl = 'https://baobab01.fautor.app'
22+
const provider = new ethers.providers.JsonRpcProvider(providerUrl)
2323

24-
const signer = new ethers.Wallet('0d3046f718bad9413a30559bcb36e10c2c257ce83f760cb5f83bb676bb51a65b', provider)
25-
const signerWithProvider = signer.connect(provider)
26-
const nonceManager = new NonceManager(signerWithProvider)
24+
const signer = new ethers.Wallet(
25+
'0d3046f718bad9413a30559bcb36e10c2c257ce83f760cb5f83bb676bb51a65b',
26+
provider
27+
)
28+
const signerWithProvider = signer.connect(provider)
29+
const nonceManager = new NonceManager(signerWithProvider)
2730

28-
const vrfConsumerNonce = new ethers.Contract(
29-
vrfConsumer.address,
30-
vrfConsumer.interface,
31-
nonceManager
32-
)
31+
const vrfConsumerNonce = new ethers.Contract(
32+
vrfConsumer.address,
33+
vrfConsumer.interface,
34+
nonceManager
35+
)
3336

34-
const limiter = new Bottleneck({
35-
maxConcurrent: RATE_LIMIT_PER_SECOND,
36-
minTime: 1000 / RATE_LIMIT_PER_SECOND
37-
})
37+
const limiter = new Bottleneck({
38+
maxConcurrent: RATE_LIMIT_PER_SECOND,
39+
minTime: 1000 / RATE_LIMIT_PER_SECOND
40+
})
3841

39-
const txResults = []
40-
for (let i = 1; i <= TOTAL_NUM_CALLS; i++) {
41-
console.log(`Call ${i}`)
42-
try {
43-
await limiter.schedule(async () => {
44-
const tx = await vrfConsumerNonce.requestRandomWordsDirect(
45-
keyHash,
46-
callbackGasLimit,
47-
numWords,
48-
{
49-
value,
50-
}
51-
)
52-
const receipt = await tx.wait()
53-
console.log(`Transaction ${i} mined: ${receipt.transactionHash}`)
54-
// const requestId = await vrfConsumerNonce.sLastRequestId()
55-
// console.log(`requestId for transaction ${i}: ${requestId}`)
56-
// let attempts = 0
57-
// let randomWord
58-
// while (attempts < 5) {
59-
// try {
60-
// randomWord = await vrfConsumerNonce.getRandomWord(requestId)
61-
// if (randomWord != 0) {
62-
// break
63-
// }
64-
// } catch (e) {
65-
// console.log(`Attempt ${attempts + 1} failed: ${e.message}`)
66-
// attempts++
67-
// await delay(20000) // wait 2 seconds before retrying
68-
// }
69-
// }
70-
// console.log(`Random word for transaction ${i}: ${randomWord}`)
71-
txResults.push({status: 'fulfilled', value: tx})
72-
})
73-
} catch (error) {
74-
console.error(`Error in loop ${i}:`, error)
75-
txResults.push({status: 'rejected', reason: error})
76-
}
42+
const txResults = []
43+
for (let i = 1; i <= TOTAL_NUM_CALLS; i++) {
44+
console.log(`Call ${i}`)
45+
try {
46+
await limiter.schedule(async () => {
47+
const tx = await vrfConsumerNonce.requestRandomWordsDirect(
48+
keyHash,
49+
callbackGasLimit,
50+
numWords,
51+
{
52+
value
53+
}
54+
)
55+
const receipt = await tx.wait()
56+
console.log(`Transaction ${i} mined: ${receipt.transactionHash}`)
57+
// const requestId = await vrfConsumerNonce.sLastRequestId()
58+
// console.log(`requestId for transaction ${i}: ${requestId}`)
59+
// let attempts = 0
60+
// let randomWord
61+
// while (attempts < 5) {
62+
// try {
63+
// randomWord = await vrfConsumerNonce.getRandomWord(requestId)
64+
// if (randomWord != 0) {
65+
// break
66+
// }
67+
// } catch (e) {
68+
// console.log(`Attempt ${attempts + 1} failed: ${e.message}`)
69+
// attempts++
70+
// await delay(20000) // wait 2 seconds before retrying
71+
// }
72+
// }
73+
// console.log(`Random word for transaction ${i}: ${randomWord}`)
74+
txResults.push({ status: 'fulfilled', value: tx })
75+
})
76+
} catch (error) {
77+
console.error(`Error in loop ${i}:`, error)
78+
txResults.push({ status: 'rejected', reason: error })
79+
}
7780

78-
if (i < TOTAL_NUM_CALLS) {
79-
await delay(WAIT_TIME_MS)
80-
}
81+
if (i < TOTAL_NUM_CALLS) {
82+
await delay(WAIT_TIME_MS)
8183
}
84+
}
8285

83-
const successfulTxs = txResults.filter((result) => result.status === 'fulfilled').map((result) => result.value)
84-
const tps = successfulTxs.length / (TOTAL_NUM_CALLS * WAIT_TIME_MS / 1000)
86+
const successfulTxs = txResults
87+
.filter((result) => result.status === 'fulfilled')
88+
.map((result) => result.value)
89+
const tps = successfulTxs.length / ((TOTAL_NUM_CALLS * WAIT_TIME_MS) / 1000)
8590

86-
console.log(`Total transactions: ${TOTAL_NUM_CALLS}`)
87-
console.log(`Successful transactions: ${successfulTxs.length}`)
88-
console.log(`TPS: ${tps}`)
91+
console.log(`Total transactions: ${TOTAL_NUM_CALLS}`)
92+
console.log(`Successful transactions: ${successfulTxs.length}`)
93+
console.log(`TPS: ${tps}`)
8994
}
9095

9196
main().catch((error) => {
92-
console.error(error)
93-
process.exitCode = 1
97+
console.error(error)
98+
process.exitCode = 1
9499
})

scripts/performance-test.ts

+55-51
Original file line numberDiff line numberDiff line change
@@ -7,71 +7,75 @@ const TOTAL_NUM_CALLS = 300
77
const RATE_LIMIT_PER_SECOND = 200
88

99
async function main() {
10-
const vrfConsumer = await ethers.getContract('VRFConsumer')
10+
const vrfConsumer = await ethers.getContract('VRFConsumer')
1111

12-
const keyHash = '0x47ede773ef09e40658e643fe79f8d1a27c0aa6eb7251749b268f829ea49f2024'
13-
const callbackGasLimit = 500_000
14-
const numWords = 1
15-
const value = ethers.utils.parseEther('1.0')
12+
const keyHash = '0x47ede773ef09e40658e643fe79f8d1a27c0aa6eb7251749b268f829ea49f2024'
13+
const callbackGasLimit = 500_000
14+
const numWords = 1
15+
const value = ethers.utils.parseEther('1.0')
1616

17-
const providerUrl = 'https://api.baobab.klaytn.net:8651'
18-
const provider = new ethers.providers.JsonRpcProvider(providerUrl)
17+
const providerUrl = 'https://api.baobab.klaytn.net:8651'
18+
const provider = new ethers.providers.JsonRpcProvider(providerUrl)
1919

20-
const signer = new ethers.Wallet('0d3046f718bad9413a30559bcb36e10c2c257ce83f760cb5f83bb676bb51a65b', provider)
21-
const signerWithProvider = signer.connect(provider)
22-
const nonceManager = new NonceManager(signerWithProvider)
20+
const signer = new ethers.Wallet(
21+
'0d3046f718bad9413a30559bcb36e10c2c257ce83f760cb5f83bb676bb51a65b',
22+
provider
23+
)
24+
const signerWithProvider = signer.connect(provider)
25+
const nonceManager = new NonceManager(signerWithProvider)
2326

24-
const vrfConsumerNonce = new ethers.Contract(
25-
vrfConsumer.address,
26-
vrfConsumer.interface,
27-
nonceManager
28-
)
27+
const vrfConsumerNonce = new ethers.Contract(
28+
vrfConsumer.address,
29+
vrfConsumer.interface,
30+
nonceManager
31+
)
2932

30-
const limiter = new Bottleneck({
31-
maxConcurrent: RATE_LIMIT_PER_SECOND,
32-
minTime: 1000 / RATE_LIMIT_PER_SECOND
33-
})
33+
const limiter = new Bottleneck({
34+
maxConcurrent: RATE_LIMIT_PER_SECOND,
35+
minTime: 1000 / RATE_LIMIT_PER_SECOND
36+
})
3437

35-
const txPromises = []
38+
const txPromises = []
3639

37-
for (let i = 1; i <= TOTAL_NUM_CALLS; i++) {
38-
console.log(`Call ${i}`)
39-
try {
40-
const txPromise = limiter.schedule(async () => {
41-
const tx = await vrfConsumerNonce.requestRandomWordsDirect(
42-
keyHash,
43-
callbackGasLimit,
44-
numWords,
45-
{
46-
value,
47-
}
48-
)
49-
return tx.wait()
50-
})
51-
txPromises.push(txPromise)
52-
} catch (error) {
53-
console.error(`Error in loop ${i}:`, error)
54-
}
40+
for (let i = 1; i <= TOTAL_NUM_CALLS; i++) {
41+
console.log(`Call ${i}`)
42+
try {
43+
const txPromise = limiter.schedule(async () => {
44+
const tx = await vrfConsumerNonce.requestRandomWordsDirect(
45+
keyHash,
46+
callbackGasLimit,
47+
numWords,
48+
{
49+
value
50+
}
51+
)
52+
return tx.wait()
53+
})
54+
txPromises.push(txPromise)
55+
} catch (error) {
56+
console.error(`Error in loop ${i}:`, error)
57+
}
5558

56-
if (i < TOTAL_NUM_CALLS) {
57-
await new Promise((resolve) => setTimeout(resolve, WAIT_TIME_MS))
58-
}
59+
if (i < TOTAL_NUM_CALLS) {
60+
await new Promise((resolve) => setTimeout(resolve, WAIT_TIME_MS))
5961
}
62+
}
6063

61-
const txResults = await Promise.allSettled(txPromises)
62-
const successfulTxs = txResults.filter((result) => result.status === 'fulfilled').map((result) => result.value)
63-
const tps = successfulTxs.length / (TOTAL_NUM_CALLS * WAIT_TIME_MS / 1000)
64+
const txResults = await Promise.allSettled(txPromises)
65+
const successfulTxs = txResults
66+
.filter((result) => result.status === 'fulfilled')
67+
.map((result) => result.value)
68+
const tps = successfulTxs.length / ((TOTAL_NUM_CALLS * WAIT_TIME_MS) / 1000)
6469

65-
console.log(`Total transactions: ${TOTAL_NUM_CALLS}`)
66-
console.log(`Successful transactions: ${successfulTxs.length}`)
67-
console.log(`TPS: ${tps}`)
70+
console.log(`Total transactions: ${TOTAL_NUM_CALLS}`)
71+
console.log(`Successful transactions: ${successfulTxs.length}`)
72+
console.log(`TPS: ${tps}`)
6873
}
6974

7075
main().catch((error) => {
71-
console.error(error)
72-
process.exitCode = 1
76+
console.error(error)
77+
process.exitCode = 1
7378
})
7479
function delay(arg0: number) {
75-
throw new Error('Function not implemented.')
80+
throw new Error('Function not implemented.')
7681
}
77-

0 commit comments

Comments
 (0)