caver-js
Version:
caver-js is a JavaScript API library that allows developers to interact with a Klaytn node
390 lines (358 loc) • 19.5 kB
JavaScript
/*
Copyright 2019 The caver-js Authors
This file is part of the caver-js library.
The caver-js library is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
The caver-js library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
along with the caver-js. If not, see <http://www.gnu.org/licenses/>.
*/
const { expect } = require('./extendedChai')
const testRPCURL = require('./testrpc')
const Caver = require('../index')
const caver = new Caver(testRPCURL)
function coverInitialForTest(tx) {
tx.to = tx.to || '0x'
tx.data = tx.data || '0x'
return tx
}
describe('caver.utils.isContractDeployment', () => {
it('CAVERJS-UNIT-ETC-054: LEGACY (type X / deploy x)', () => {
const txObject = {
from: '0x90b3e9a3770481345a7f17f22f16d020bccfd33e',
to: '0xd03227635c90c7986f0e3a4e551cefbca8c55316',
gas: '0x3b9ac9ff',
gasPrice: '0x19',
nonce: '0x0',
value: '0x174876e800',
chainId: '0x1',
}
expect(caver.utils.isContractDeployment(txObject)).to.false
expect(caver.utils.isContractDeployment(coverInitialForTest(txObject))).to.false
})
it('CAVERJS-UNIT-ETC-055: LEGACY (type o / deploy x)', () => {
const txObject = {
type: 'LEGACY',
from: '0x90b3e9a3770481345a7f17f22f16d020bccfd33e',
to: '0xd03227635c90c7986f0e3a4e551cefbca8c55316',
gas: '0x3b9ac9ff',
gasPrice: '0x19',
nonce: '0x0',
value: '0x174876e800',
chainId: '0x1',
}
expect(caver.utils.isContractDeployment(txObject)).to.false
expect(caver.utils.isContractDeployment(coverInitialForTest(txObject))).to.false
})
it('CAVERJS-UNIT-ETC-056: LEGACY (type X / deploy o)', () => {
const txObject = {
from: '0x90b3e9a3770481345a7f17f22f16d020bccfd33e',
gas: '0x3b9ac9ff',
gasPrice: '0x19',
nonce: '0x0',
data:
'0x6080604052348015600f57600080fd5b5060e98061001e6000396000f300608060405260043610603f576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063954ab4b2146044575b600080fd5b348015604f57600080fd5b5060566058565b005b7f90a042becc42ba1b13a5d545701bf5ceff20b24d9e5cc63b67f96ef814d80f0933604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15600a165627a7a723058200ebb53e9d575350ceb2d92263b7d4920888706b5221f024e7bbc10e3dbb8e18d0029',
value: 0,
chainId: '0x1',
}
expect(caver.utils.isContractDeployment(txObject)).to.true
expect(caver.utils.isContractDeployment(coverInitialForTest(txObject))).to.true
})
it('CAVERJS-UNIT-ETC-057: LEGACY (type o / deploy o)', () => {
const txObject = {
type: 'LEGACY',
from: '0x90b3e9a3770481345a7f17f22f16d020bccfd33e',
gas: '0x3b9ac9ff',
gasPrice: '0x19',
nonce: '0x0',
data:
'0x6080604052348015600f57600080fd5b5060e98061001e6000396000f300608060405260043610603f576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063954ab4b2146044575b600080fd5b348015604f57600080fd5b5060566058565b005b7f90a042becc42ba1b13a5d545701bf5ceff20b24d9e5cc63b67f96ef814d80f0933604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15600a165627a7a723058200ebb53e9d575350ceb2d92263b7d4920888706b5221f024e7bbc10e3dbb8e18d0029',
value: 0,
chainId: '0x1',
}
expect(caver.utils.isContractDeployment(txObject)).to.true
expect(caver.utils.isContractDeployment(coverInitialForTest(txObject))).to.true
})
it('CAVERJS-UNIT-ETC-058: VALUE_TRANSFER', () => {
const txObject = {
type: 'VALUE_TRANSFER',
from: '0x90B3E9A3770481345A7F17f22f16D020Bccfd33e',
to: '0x75c3098Be5E4B63FBAc05838DaAEE378dD48098d',
nonce: '0x1',
gas: '0x3b9ac9ff',
gasPrice: '0x19',
value: '0x989680',
chainId: '0x1',
}
expect(caver.utils.isContractDeployment(txObject)).to.false
expect(caver.utils.isContractDeployment(coverInitialForTest(txObject))).to.false
})
it('CAVERJS-UNIT-ETC-059: FEE_DELEGATED_VALUE_TRANSFER', () => {
const txObject = {
type: 'FEE_DELEGATED_VALUE_TRANSFER',
from: '0x90B3E9A3770481345A7F17f22f16D020Bccfd33e',
to: '0x75c3098Be5E4B63FBAc05838DaAEE378dD48098d',
nonce: '0x2',
gas: '0x3b9ac9ff',
gasPrice: '0x19',
value: '0x989680',
chainId: '0x1',
}
expect(caver.utils.isContractDeployment(txObject)).to.false
expect(caver.utils.isContractDeployment(coverInitialForTest(txObject))).to.false
})
it('CAVERJS-UNIT-ETC-060: FEE_DELEGATED_VALUE_TRANSFER_WITH_RATIO', () => {
const txObject = {
type: 'FEE_DELEGATED_VALUE_TRANSFER_WITH_RATIO',
from: '0x90B3E9A3770481345A7F17f22f16D020Bccfd33e',
to: '0x75c3098Be5E4B63FBAc05838DaAEE378dD48098d',
nonce: '0x3',
gas: '0x3b9ac9ff',
feeRatio: 20,
gasPrice: '0x19',
value: '0x989680',
chainId: '0x1',
}
expect(caver.utils.isContractDeployment(txObject)).to.false
expect(caver.utils.isContractDeployment(coverInitialForTest(txObject))).to.false
})
it('CAVERJS-UNIT-ETC-061: VALUE_TRANSFER_MEMO', () => {
const txObject = {
type: 'VALUE_TRANSFER_MEMO',
from: '0x90B3E9A3770481345A7F17f22f16D020Bccfd33e',
to: '0x75c3098Be5E4B63FBAc05838DaAEE378dD48098d',
nonce: '0x4',
gas: '0x3b9ac9ff',
gasPrice: '0x19',
value: '0x989680',
data: '0x68656c6c6f',
chainId: '0x1',
}
expect(caver.utils.isContractDeployment(txObject)).to.false
expect(caver.utils.isContractDeployment(coverInitialForTest(txObject))).to.false
})
it('CAVERJS-UNIT-ETC-062: FEE_DELEGATED_VALUE_TRANSFER_MEMO', () => {
const txObject = {
type: 'FEE_DELEGATED_VALUE_TRANSFER_MEMO',
from: '0x90B3E9A3770481345A7F17f22f16D020Bccfd33e',
to: '0x75c3098Be5E4B63FBAc05838DaAEE378dD48098d',
nonce: '0x5',
gas: '0x3b9ac9ff',
gasPrice: '0x19',
value: '0x989680',
chainId: '0x1',
data: '0x68656c6c6f',
}
expect(caver.utils.isContractDeployment(txObject)).to.false
expect(caver.utils.isContractDeployment(coverInitialForTest(txObject))).to.false
})
it('CAVERJS-UNIT-ETC-063: FEE_DELEGATED_VALUE_TRANSFER_MEMO_WITH_RATIO', () => {
const txObject = {
type: 'FEE_DELEGATED_VALUE_TRANSFER_MEMO_WITH_RATIO',
from: '0x90b3e9a3770481345a7f17f22f16d020bccfd33e',
to: '0x75c3098be5e4b63fbac05838daaee378dd48098d',
nonce: '0x6',
gas: '0x3b9ac9ff',
feeRatio: 30,
data: '0x68656c6c6f',
gasPrice: '0x19',
value: '0x989680',
chainId: '0x1',
}
expect(caver.utils.isContractDeployment(txObject)).to.false
expect(caver.utils.isContractDeployment(coverInitialForTest(txObject))).to.false
})
it('CAVERJS-UNIT-ETC-064: ACCOUNT_UPDATE', () => {
const txObject = {
type: 'ACCOUNT_UPDATE',
from: '0x88e245dec96830f012f8fc1806bc623b3774560d',
publicKey:
'0x4ef27ba4b7d1ae09b166744c5b7ee4a7a0cc5c76b2e5d74523a0a4fb56db319162ff3255302045cd047a27141916d55615a7c1ead06e211e62119e7bc2a40def',
nonce: '0x0',
gas: '0x3b9ac9ff',
chainId: '0x7e3',
gasPrice: '0x5d21dba00',
}
expect(caver.utils.isContractDeployment(txObject)).to.false
expect(caver.utils.isContractDeployment(coverInitialForTest(txObject))).to.false
})
it('CAVERJS-UNIT-ETC-065: FEE_DELEGATED_ACCOUNT_UPDATE', () => {
const txObject = {
type: 'FEE_DELEGATED_ACCOUNT_UPDATE',
from: '0x5104711f7faa9e2dadf593e43db1577a2887636f',
nonce: '0x0',
gas: '0x3b9ac9ff',
publicKey:
'0x4ef27ba4b7d1ae09b166744c5b7ee4a7a0cc5c76b2e5d74523a0a4fb56db319162ff3255302045cd047a27141916d55615a7c1ead06e211e62119e7bc2a40def',
chainId: '0x7e3',
gasPrice: '0x5d21dba00',
}
expect(caver.utils.isContractDeployment(txObject)).to.false
expect(caver.utils.isContractDeployment(coverInitialForTest(txObject))).to.false
})
it('CAVERJS-UNIT-ETC-066: FEE_DELEGATED_ACCOUNT_UPDATE_WITH_RATIO', () => {
const txObject = {
type: 'FEE_DELEGATED_ACCOUNT_UPDATE_WITH_RATIO',
from: '0xd03227635c90c7986f0e3a4e551cefbca8c55316',
nonce: '0x0',
gas: '0x3b9ac9ff',
gasPrice: '0x19',
publicKey:
'0xc8785266510368d9372badd4c7f4a94b692e82ba74e0b5e26b34558b0f08144794c27901465af0a703859ab47f8ae17e54aaba453b7cde5a6a9e4a32d45d72b2',
feeRatio: 11,
chainId: '0x1',
}
expect(caver.utils.isContractDeployment(txObject)).to.false
expect(caver.utils.isContractDeployment(coverInitialForTest(txObject))).to.false
})
it('CAVERJS-UNIT-ETC-067: SMART_CONTRACT_DEPLOY', () => {
const txObject = {
type: 'SMART_CONTRACT_DEPLOY',
from: '0x90B3E9A3770481345A7F17f22f16D020Bccfd33e',
nonce: '0x8',
data:
'0x608060405234801561001057600080fd5b506101de806100206000396000f3006080604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631a39d8ef81146100805780636353586b146100a757806370a08231146100ca578063fd6b7ef8146100f8575b3360009081526001602052604081208054349081019091558154019055005b34801561008c57600080fd5b5061009561010d565b60408051918252519081900360200190f35b6100c873ffffffffffffffffffffffffffffffffffffffff60043516610113565b005b3480156100d657600080fd5b5061009573ffffffffffffffffffffffffffffffffffffffff60043516610147565b34801561010457600080fd5b506100c8610159565b60005481565b73ffffffffffffffffffffffffffffffffffffffff1660009081526001602052604081208054349081019091558154019055565b60016020526000908152604090205481565b336000908152600160205260408120805490829055908111156101af57604051339082156108fc029083906000818181858888f193505050501561019c576101af565b3360009081526001602052604090208190555b505600a165627a7a72305820627ca46bb09478a015762806cc00c431230501118c7c26c30ac58c4e09e51c4f0029',
gas: '0x3b9ac9ff',
gasPrice: '0x0',
value: '0x0',
chainId: '0x1',
}
expect(caver.utils.isContractDeployment(txObject)).to.true
expect(caver.utils.isContractDeployment(coverInitialForTest(txObject))).to.true
})
it('CAVERJS-UNIT-ETC-068: FEE_DELEGATED_SMART_CONTRACT_DEPLOY', () => {
const txObject = {
type: 'FEE_DELEGATED_SMART_CONTRACT_DEPLOY',
from: '0x90B3E9A3770481345A7F17f22f16D020Bccfd33e',
nonce: '0x9',
data:
'0x608060405234801561001057600080fd5b506101de806100206000396000f3006080604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631a39d8ef81146100805780636353586b146100a757806370a08231146100ca578063fd6b7ef8146100f8575b3360009081526001602052604081208054349081019091558154019055005b34801561008c57600080fd5b5061009561010d565b60408051918252519081900360200190f35b6100c873ffffffffffffffffffffffffffffffffffffffff60043516610113565b005b3480156100d657600080fd5b5061009573ffffffffffffffffffffffffffffffffffffffff60043516610147565b34801561010457600080fd5b506100c8610159565b60005481565b73ffffffffffffffffffffffffffffffffffffffff1660009081526001602052604081208054349081019091558154019055565b60016020526000908152604090205481565b336000908152600160205260408120805490829055908111156101af57604051339082156108fc029083906000818181858888f193505050501561019c576101af565b3360009081526001602052604090208190555b505600a165627a7a72305820627ca46bb09478a015762806cc00c431230501118c7c26c30ac58c4e09e51c4f0029',
gas: '0x3b9ac9ff',
gasPrice: '0x0',
chainId: '0x1',
value: '0x0',
}
expect(caver.utils.isContractDeployment(txObject)).to.true
expect(caver.utils.isContractDeployment(coverInitialForTest(txObject))).to.true
})
it('CAVERJS-UNIT-ETC-069: FEE_DELEGATED_SMART_CONTRACT_DEPLOY_WITH_RATIO', () => {
const txObject = {
type: 'FEE_DELEGATED_SMART_CONTRACT_DEPLOY_WITH_RATIO',
from: '0x90B3E9A3770481345A7F17f22f16D020Bccfd33e',
nonce: 10,
data:
'0x608060405234801561001057600080fd5b506101de806100206000396000f3006080604052600436106100615763ffffffff7c01000000000000000000000000000000000000000000000000000000006000350416631a39d8ef81146100805780636353586b146100a757806370a08231146100ca578063fd6b7ef8146100f8575b3360009081526001602052604081208054349081019091558154019055005b34801561008c57600080fd5b5061009561010d565b60408051918252519081900360200190f35b6100c873ffffffffffffffffffffffffffffffffffffffff60043516610113565b005b3480156100d657600080fd5b5061009573ffffffffffffffffffffffffffffffffffffffff60043516610147565b34801561010457600080fd5b506100c8610159565b60005481565b73ffffffffffffffffffffffffffffffffffffffff1660009081526001602052604081208054349081019091558154019055565b60016020526000908152604090205481565b336000908152600160205260408120805490829055908111156101af57604051339082156108fc029083906000818181858888f193505050501561019c576101af565b3360009081526001602052604090208190555b505600a165627a7a72305820627ca46bb09478a015762806cc00c431230501118c7c26c30ac58c4e09e51c4f0029',
gas: '0x3b9ac9ff',
gasPrice: '0x0',
chainId: '0x1',
feeRatio: 33,
value: '0x0',
}
expect(caver.utils.isContractDeployment(txObject)).to.true
expect(caver.utils.isContractDeployment(coverInitialForTest(txObject))).to.true
})
it('CAVERJS-UNIT-ETC-070: SMART_CONTRACT_EXECUTION', () => {
const txObject = {
type: 'SMART_CONTRACT_EXECUTION',
from: '0x90B3E9A3770481345A7F17f22f16D020Bccfd33e',
to: '0x5e008646fde91fb6eda7b1fdabc7d84649125cf5',
nonce: '0xb',
data: '0x6353586b00000000000000000000000090b3e9a3770481345a7f17f22f16d020bccfd33e',
gas: '0x3b9ac9ff',
gasPrice: '0x19',
value: '0xa',
chainId: '0x1',
}
expect(caver.utils.isContractDeployment(txObject)).to.false
expect(caver.utils.isContractDeployment(coverInitialForTest(txObject))).to.false
})
it('CAVERJS-UNIT-ETC-071: FEE_DELEGATED_SMART_CONTRACT_EXECUTION', () => {
const txObject = {
type: 'FEE_DELEGATED_SMART_CONTRACT_EXECUTION',
from: '0x90B3E9A3770481345A7F17f22f16D020Bccfd33e',
to: '0x5e008646fde91fb6eda7b1fdabc7d84649125cf5',
nonce: 12,
value: '0xa',
data: '0x6353586b00000000000000000000000090b3e9a3770481345a7f17f22f16d020bccfd33e',
gas: '0x3b9ac9ff',
gasPrice: '0x0',
chainId: '0x1',
}
expect(caver.utils.isContractDeployment(txObject)).to.false
expect(caver.utils.isContractDeployment(coverInitialForTest(txObject))).to.false
})
it('CAVERJS-UNIT-ETC-072: FEE_DELEGATED_SMART_CONTRACT_EXECUTION_WITH_RATIO', () => {
const txObject = {
type: 'FEE_DELEGATED_SMART_CONTRACT_EXECUTION_WITH_RATIO',
from: '0x90B3E9A3770481345A7F17f22f16D020Bccfd33e',
to: '0x5e008646fde91fb6eda7b1fdabc7d84649125cf5',
nonce: 13,
data: '0x6353586b00000000000000000000000090b3e9a3770481345a7f17f22f16d020bccfd33e',
gas: '0x3b9ac9ff',
gasPrice: '0x0',
chainId: '0x1',
feeRatio: 66,
value: '0xa',
}
expect(caver.utils.isContractDeployment(txObject)).to.false
expect(caver.utils.isContractDeployment(coverInitialForTest(txObject))).to.false
})
it('CAVERJS-UNIT-ETC-073: CANCEL', () => {
const txObject = {
type: 'CANCEL',
from: '0x90B3E9A3770481345A7F17f22f16D020Bccfd33e',
nonce: '0xe',
gasPrice: '0x19',
gas: '0x3b9ac9ff',
chainId: '0x1',
}
expect(caver.utils.isContractDeployment(txObject)).to.false
expect(caver.utils.isContractDeployment(coverInitialForTest(txObject))).to.false
})
it('CAVERJS-UNIT-ETC-074: FEE_DELEGATED_CANCEL', () => {
const txObject = {
type: 'FEE_DELEGATED_CANCEL',
from: '0x90B3E9A3770481345A7F17f22f16D020Bccfd33e',
nonce: 15,
gas: '0x3b9ac9ff',
gasPrice: '0x19',
chainId: '0x1',
}
expect(caver.utils.isContractDeployment(txObject)).to.false
expect(caver.utils.isContractDeployment(coverInitialForTest(txObject))).to.false
})
it('CAVERJS-UNIT-ETC-075: FEE_DELEGATED_CANCEL_WITH_RATIO', () => {
const txObject = {
type: 'FEE_DELEGATED_CANCEL_WITH_RATIO',
from: '0x90B3E9A3770481345A7F17f22f16D020Bccfd33e',
nonce: 16,
gas: '0x3b9ac9ff',
gasPrice: '0x0',
chainId: '0x1',
feeRatio: 88,
}
expect(caver.utils.isContractDeployment(txObject)).to.false
expect(caver.utils.isContractDeployment(coverInitialForTest(txObject))).to.false
})
it('CAVERJS-UNIT-ETC-076: CHAIN_DATA_ANCHORING', () => {
const txObject = {
type: 'CHAIN_DATA_ANCHORING',
from: '0x90B3E9A3770481345A7F17f22f16D020Bccfd33e',
to: '0x75c3098Be5E4B63FBAc05838DaAEE378dD48098d',
nonce: '0x11',
gasPrice: '0x19',
gas: '0x3b9ac9ff',
value: '0x989680',
anchoredData:
'0xf8a6a00000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000001a00000000000000000000000000000000000000000000000000000000000000002a00000000000000000000000000000000000000000000000000000000000000003a0000000000000000000000000000000000000000000000000000000000000000405',
chainId: '0x1',
}
expect(caver.utils.isContractDeployment(txObject)).to.false
expect(caver.utils.isContractDeployment(coverInitialForTest(txObject))).to.false
})
})