1
0
mirror of https://github.com/oceanprotocol/ocean.js.git synced 2024-11-26 20:39:05 +01:00
ocean.js/test/unit/Datatokens.test.ts
2020-06-10 14:15:33 +02:00

145 lines
43 KiB
TypeScript

import { assert } from 'chai'
import { DataTokens } from '../../src/datatokens/Datatokens'
import { TestContractHandler } from './TestContractHandler'
const Web3 = require('web3')
const web3 = new Web3("http://127.0.0.1:8545")
const factoryABI = require('../../src/datatokens/FactoryABI.json')
const datatokensABI = require('../../src/datatokens/DatatokensABI.json')
// const feemanagerABI = require('../../src/datatokens/FeeManagerABI.json')
describe('DataTokens', () => {
beforeEach(async () => {
const contractHandler = new TestContractHandler(factoryABI,datatokensABI)
await contractHandler.getAccounts()
await contractHandler.deployContracts()
})
describe('#test', () => {
it('should test', async () => {
let test = true
assert(test !== null)
})
})
})
// let Factory
// let Template
// let FeeManager
// let feeManager
// let template
// let factory
// let accounts
// let blob
// let minter
// let zeroAddress
// let cap
// let tokenAmount
// beforeEach(async () => {
// accounts = await web3.eth.getAccounts()
// Factory = new web3.eth.Contract(factoryABI)
// Template = new web3.eth.Contract(datatokensABI)
// FeeManager = new web3.eth.Contract(feemanagerABI)
// blob = 'https://example.com/dataset-1'
// minter = accounts[0]
// zeroAddress = '0x0000000000000000000000000000000000000000'
// cap = 1400000000
// tokenAmount = 1
// // Deploy FeeManager
// let feeManagerBytecode = "0x608060405234801561001057600080fd5b50600061002a6100cd640100000000026401000000009004565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506100d5565b600033905090565b610a61806100e46000396000f3fe60806040526004361061008d576000357c0100000000000000000000000000000000000000000000000000000000900480638da5cb5b1161006b5780638da5cb5b146101165780638f32d59b1461016d57806390d3d8621461019c578063f2fde38b146101eb5761008d565b806334e731221461008f5780633ccfd60b146100e8578063715018a6146100ff575b005b34801561009b57600080fd5b506100d2600480360360408110156100b257600080fd5b81019080803590602001909291908035906020019092919050505061023c565b6040518082815260200191505060405180910390f35b3480156100f457600080fd5b506100fd610312565b005b34801561010b57600080fd5b50610114610479565b005b34801561012257600080fd5b5061012b6105b2565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561017957600080fd5b506101826105db565b604051808215151515815260200191505060405180910390f35b3480156101a857600080fd5b506101d5600480360360208110156101bf57600080fd5b8101908080359060200190929190505050610639565b6040518082815260200191505060405180910390f35b3480156101f757600080fd5b5061023a6004803603602081101561020e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610686565b005b6000828210156102b4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f46656543616c63756c61746f723a20496e76616c69642063617000000000000081525060200191505060405180910390fd5b60006102bf84610639565b905060006102d861abe08361070c90919063ffffffff16565b9050610308600a6102fa6102eb87610639565b8461079290919063ffffffff16565b61079290919063ffffffff16565b9250505092915050565b61031a6105db565b61038c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b60003073ffffffffffffffffffffffffffffffffffffffff163111610419576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f4665654d616e616765723a205a65726f2062616c616e6365000000000000000081525060200191505060405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc3073ffffffffffffffffffffffffffffffffffffffff16319081150290604051600060405180830381858888f19350505050158015610476573d6000803e3d6000fd5b50565b6104816105db565b6104f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661061d6107dc565b73ffffffffffffffffffffffffffffffffffffffff1614905090565b600080829050600080905060008090505b600a831061067b57610666600a8461079290919063ffffffff16565b9250600182019150808060010191505061064a565b508092505050919050565b61068e6105db565b610700576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b610709816107e4565b50565b60008083141561071f576000905061078c565b600082840290508284828161073057fe5b0414610787576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180610a156021913960400191505060405180910390fd5b809150505b92915050565b60006107d483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610928565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561086a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806109ef6026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080831182906109d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561099957808201518184015260208101905061097e565b50505050905090810190601f1680156109c65780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385816109e057fe5b04905080915050939250505056fe4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061646472657373536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a165627a7a72305820770a5bd057ba57e1f78e0d5802439ff9854a0cefbd22024a4c1b401342d58c840029"
// // get est gascost
// let estGas = await FeeManager.deploy({
// data:feeManagerBytecode
// })
// .estimateGas(function(err, estGas){
// return estGas
// })
// // deploy the contract and get it's address
// feeManager = await FeeManager.deploy({data:feeManagerBytecode})
// .send({
// from: minter,
// gas: estGas+1,
// gasPrice: '12345678'
// })
// .then(function(contract){
// return contract.options.address
// })
// // Deploy Template
// let templateBytecode = "0x60806040526000600360006101000a81548160ff0219169083151502179055506000600360016101000a81548160ff0219169083151502179055503480156200004757600080fd5b5060405162002ef738038062002ef7833981018060405260c08110156200006d57600080fd5b8101908080516401000000008111156200008657600080fd5b828101905060208101848111156200009d57600080fd5b8151856001820283011164010000000082111715620000bb57600080fd5b50509291906020018051640100000000811115620000d857600080fd5b82810190506020810184811115620000ef57600080fd5b81518560018202830111640100000000821117156200010d57600080fd5b5050929190602001805190602001909291908051906020019092919080516401000000008111156200013e57600080fd5b828101905060208101848111156200015557600080fd5b81518560018202830111640100000000821117156200017357600080fd5b505092919060200180519060200190929190505050620001a7868686868686620001b4640100000000026401000000009004565b505050505050506200058b565b60008073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614156200023d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603081526020018062002e416030913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620002c5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603381526020018062002ec46033913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146200036e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f81526020018062002e95602f913960400191505060405180910390fd5b60008411620003c9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602481526020018062002e716024913960400191505060405180910390fd5b6000600881905550836007819055508660049080519060200190620003f0929190620004dc565b50826006908051906020019062000409929190620004dc565b50856005908051906020019062000422929190620004dc565b5084600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600360016101000a81548160ff021916908315150217905550600360019054906101000a900460ff1690509695505050505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200051f57805160ff191683800117855562000550565b8280016001018555821562000550579182015b828111156200054f57825182559160200191906001019062000532565b5b5090506200055f919062000563565b5090565b6200058891905b80821115620005845760008160009055506001016200056a565b5090565b90565b6128a6806200059b6000396000f3fe608060405260043610610147576000357c01000000000000000000000000000000000000000000000000000000009004806370a08231116100c8578063a9059cbb1161008c578063a9059cbb14610841578063aa271e1a146108b4578063b187bd261461091d578063dd62ed3e1461094c578063fca3b5aa146109d1578063fde0e7a814610a2257610147565b806370a082311461046a5780638456cb59146104cf5780639070d2f8146104e657806395d89b411461073e578063a457c2d7146107ce57610147565b8063355274ea1161010f578063355274ea14610338578063392e53cd1461036357806339509351146103925780633f4ba83a1461040557806340c10f191461041c57610147565b806306fdde031461014c578063095ea7b3146101dc57806318160ddd1461024f57806323b872dd1461027a578063313ce5671461030d575b600080fd5b34801561015857600080fd5b50610161610ab2565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101a1578082015181840152602081019050610186565b50505050905090810190601f1680156101ce5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101e857600080fd5b50610235600480360360408110156101ff57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b54565b604051808215151515815260200191505060405180910390f35b34801561025b57600080fd5b50610264610bce565b6040518082815260200191505060405180910390f35b34801561028657600080fd5b506102f36004803603606081101561029d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610bd8565b604051808215151515815260200191505060405180910390f35b34801561031957600080fd5b50610322610c54565b6040518082815260200191505060405180910390f35b34801561034457600080fd5b5061034d610c5e565b6040518082815260200191505060405180910390f35b34801561036f57600080fd5b50610378610c68565b604051808215151515815260200191505060405180910390f35b34801561039e57600080fd5b506103eb600480360360408110156103b557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c7f565b604051808215151515815260200191505060405180910390f35b34801561041157600080fd5b5061041a610cf9565b005b6104686004803603604081101561043257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e21565b005b34801561047657600080fd5b506104b96004803603602081101561048d57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611161565b6040518082815260200191505060405180910390f35b3480156104db57600080fd5b506104e46111a9565b005b3480156104f257600080fd5b50610724600480360360c081101561050957600080fd5b810190808035906020019064010000000081111561052657600080fd5b82018360208201111561053857600080fd5b8035906020019184600183028401116401000000008311171561055a57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803590602001906401000000008111156105bd57600080fd5b8201836020820111156105cf57600080fd5b803590602001918460018302840111640100000000831117156105f157600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291908035906020019064010000000081111561067e57600080fd5b82018360208201111561069057600080fd5b803590602001918460018302840111640100000000831117156106b257600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506112d2565b604051808215151515815260200191505060405180910390f35b34801561074a57600080fd5b50610753611354565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610793578082015181840152602081019050610778565b50505050905090810190601f1680156107c05780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156107da57600080fd5b50610827600480360360408110156107f157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506113f6565b604051808215151515815260200191505060405180910390f35b34801561084d57600080fd5b5061089a6004803603604081101561086457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611470565b604051808215151515815260200191505060405180910390f35b3480156108c057600080fd5b50610903600480360360208110156108d757600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506114ea565b604051808215151515815260200191505060405180910390f35b34801561092957600080fd5b50610932611544565b604051808215151515815260200191505060405180910390f35b34801561095857600080fd5b506109bb6004803603604081101561096f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061155b565b6040518082815260200191505060405180910390f35b3480156109dd57600080fd5b50610a20600480360360208110156109f457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506115e2565b005b348015610a2e57600080fd5b50610a37611732565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610a77578082015181840152602081019050610a5c565b50505050905090810190601f168015610aa45780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b606060048054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610b4a5780601f10610b1f57610100808354040283529160200191610b4a565b820191906000526020600020905b815481529060010190602001808311610b2d57829003601f168201915b5050505050905090565b6000600360009054906101000a900460ff1615610bbc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180612604602c913960400191505060405180910390fd5b610bc683836117d4565b905092915050565b6000600254905090565b6000600360009054906101000a900460ff1615610c40576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180612604602c913960400191505060405180910390fd5b610c4b8484846117f2565b90509392505050565b6000600854905090565b6000600754905090565b6000600360019054906101000a900460ff16905090565b6000600360009054906101000a900460ff1615610ce7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180612604602c913960400191505060405180910390fd5b610cf183836118cb565b905092915050565b600360009054906101000a900460ff16610d5e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001806127cf6030913960400191505060405180910390fd5b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610e04576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806126876021913960400191505060405180910390fd5b6000600360006101000a81548160ff021916908315150217905550565b600360009054906101000a900460ff1615610e87576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180612604602c913960400191505060405180910390fd5b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610f2d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806126876021913960400191505060405180910390fd5b600754610f4a82610f3c610bce565b61197e90919063ffffffff16565b1115610fbe576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f44617461546f6b656e54656d706c6174653a206361702065786365656465640081525060200191505060405180910390fd5b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166334e73122826007546040518363ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808381526020018281526020019250505060206040518083038186803b15801561105757600080fd5b505afa15801561106b573d6000803e3d6000fd5b505050506040513d602081101561108157600080fd5b81019080805190602001909291905050503410156110ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260318152602001806126ce6031913960400191505060405180910390fd5b6110f48282611a06565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f1935050505015801561115c573d6000803e3d6000fd5b505050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600360009054906101000a900460ff161561120f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180612604602c913960400191505060405180910390fd5b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146112b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806126876021913960400191505060405180910390fd5b6001600360006101000a81548160ff021916908315150217905550565b6000600360019054906101000a900460ff161561133a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260358152602001806126526035913960400191505060405180910390fd5b611348878787878787611bc1565b90509695505050505050565b606060058054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156113ec5780601f106113c1576101008083540402835291602001916113ec565b820191906000526020600020905b8154815290600101906020018083116113cf57829003601f168201915b5050505050905090565b6000600360009054906101000a900460ff161561145e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180612604602c913960400191505060405180910390fd5b6114688383611edb565b905092915050565b6000600360009054906101000a900460ff16156114d8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180612604602c913960400191505060405180910390fd5b6114e28383611fa8565b905092915050565b60008173ffffffffffffffffffffffffffffffffffffffff16600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16149050919050565b6000600360009054906101000a900460ff16905090565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600360009054906101000a900460ff1615611648576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180612604602c913960400191505060405180910390fd5b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146116ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806126876021913960400191505060405180910390fd5b80600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b606060068054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156117ca5780601f1061179f576101008083540402835291602001916117ca565b820191906000526020600020905b8154815290600101906020018083116117ad57829003601f168201915b5050505050905090565b60006117e86117e1611fc6565b8484611fce565b6001905092915050565b60006117ff8484846121c5565b6118c08461180b611fc6565b6118bb8560405180606001604052806028815260200161275360289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000611871611fc6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461247b9092919063ffffffff16565b611fce565b600190509392505050565b60006119746118d8611fc6565b8461196f85600160006118e9611fc6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461197e90919063ffffffff16565b611fce565b6001905092915050565b6000808284019050838110156119fc576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611aa9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f45524332303a206d696e7420746f20746865207a65726f20616464726573730081525060200191505060405180910390fd5b611abe8160025461197e90919063ffffffff16565b600281905550611b15816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461197e90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a35050565b60008073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415611c48576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260308152602001806126ff6030913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611cce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260338152602001806128236033913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d75576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f81526020018061277b602f913960400191505060405180910390fd5b60008411611dce576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602481526020018061272f6024913960400191505060405180910390fd5b6000600881905550836007819055508660049080519060200190611df392919061253b565b508260069080519060200190611e0a92919061253b565b508560059080519060200190611e2192919061253b565b5084600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600360016101000a81548160ff021916908315150217905550600360019054906101000a900460ff1690509695505050505050565b6000611f9e611ee8611fc6565b84611f99856040518060600160405280602581526020016128566025913960016000611f12611fc6565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461247b9092919063ffffffff16565b611fce565b6001905092915050565b6000611fbc611fb5611fc6565b84846121c5565b6001905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612054576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806127ff6024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156120da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806126306022913960400191505060405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561224b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260258152602001806127aa6025913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156122d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260238152602001806125e16023913960400191505060405180910390fd5b61233c816040518060600160405280602681526020016126a8602691396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461247b9092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506123cf816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461197e90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b6000838311158290612528576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156124ed5780820151818401526020810190506124d2565b50505050905090810190601f16801561251a5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061257c57805160ff19168380011785556125aa565b828001600101855582156125aa579182015b828111156125a957825182559160200191906001019061258e565b5b5090506125b791906125bb565b5090565b6125dd91905b808211156125d95760008160009055506001016125c1565b5090565b9056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737345524332305061757361626c653a207468697320746f6b656e20636f6e74726163742069732070617573656445524332303a20617070726f766520746f20746865207a65726f206164647265737344617461546f6b656e54656d706c6174653a20746f6b656e20696e7374616e636520616c726561647920696e697469616c697a656444617461546f6b656e54656d706c6174653a20696e76616c6964206d696e74657245524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636544617461546f6b656e54656d706c6174653a20696e76616c6964206461746120746f6b656e206d696e74696e672066656544617461546f6b656e54656d706c6174653a20496e76616c6964206d696e7465722c20207a65726f206164647265737344617461546f6b656e54656d706c6174653a20496e76616c6964206361702076616c756545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636544617461546f6b656e54656d706c6174653a20496e76616c6964206d696e7465722c207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332305061757361626c653a207468697320746f6b656e20636f6e7472616374206973206e6f742070617573656445524332303a20617070726f76652066726f6d20746865207a65726f206164647265737344617461546f6b656e54656d706c6174653a20496e76616c6964206665654d616e616765722c207a65726f206164647265737345524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa165627a7a7230582083b0e963470108678e6928edbaf294e07eb4d1ae64d8849191eabff23d426d97002944617461546f6b656e54656d706c6174653a20496e76616c6964206d696e7465722c20207a65726f206164647265737344617461546f6b656e54656d706c6174653a20496e76616c6964206361702076616c756544617461546f6b656e54656d706c6174653a20496e76616c6964206d696e7465722c207a65726f206164647265737344617461546f6b656e54656d706c6174653a20496e76616c6964206665654d616e616765722c207a65726f2061646472657373"
// // get est gascost
// estGas = await Template.deploy({
// data:templateBytecode,
// arguments:['Template Contract', 'TEMPLATE', minter, cap, blob, feeManager]
// })
// .estimateGas(function(err, estGas){
// return estGas
// })
// // deploy the contract and get it's address
// template = await Template.deploy({
// data:templateBytecode,
// arguments:['Template Contract', 'TEMPLATE', minter, cap, blob, feeManager]
// })
// .send({
// from: minter,
// gas: estGas+1,
// gasPrice: '12345678'
// })
// .then(function(contract){
// return contract.options.address
// })
// // Deploy Factory
// let factoryBytecode = "0x6080604052600160025534801561001557600080fd5b506040516040806110ce8339810180604052604081101561003557600080fd5b810190808051906020019092919080519060200190929190505050600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156100ba5750600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b61010f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c8152602001806110a2602c913960400191505060405180910390fd5b81600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050610f01806101a16000396000f3fe608060405234801561001057600080fd5b506004361061005e576000357c01000000000000000000000000000000000000000000000000000000009004806345576f94146100635780637a36b3ee1461015e578063e939567914610329575b600080fd5b61011c6004803603602081101561007957600080fd5b810190808035906020019064010000000081111561009657600080fd5b8201836020820111156100a857600080fd5b803590602001918460018302840111640100000000831117156100ca57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506103d0565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6102ae6004803603604081101561017457600080fd5b810190808035906020019064010000000081111561019157600080fd5b8201836020820111156101a357600080fd5b803590602001918460018302840111640100000000831117156101c557600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019064010000000081111561022857600080fd5b82018360208201111561023a57600080fd5b8035906020019184600183028401116401000000008311171561025c57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050610b81565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156102ee5780820151818401526020810190506102d3565b50505050905090810190601f16801561031b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6103556004803603602081101561033f57600080fd5b8101908080359060200190929190505050610c49565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561039557808201518184015260208101905061037a565b50505050905090810190601f1680156103c25780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b60006103fd600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610d98565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610485576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526038815260200180610e9e6038913960400191505060405180910390fd5b60606104d06040518060400160405280600281526020017f44540000000000000000000000000000000000000000000000000000000000008152506104cb600254610c49565b610b81565b9050606081905060008390508073ffffffffffffffffffffffffffffffffffffffff16639070d2f88484337fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8a6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518763ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018080602001806020018773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001868152602001806020018573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200184810384528a818151815260200191508051906020019080838360005b8381101561061c578082015181840152602081019050610601565b50505050905090810190601f1680156106495780820380516001836020036101000a031916815260200191505b50848103835289818151815260200191508051906020019080838360005b83811015610682578082015181840152602081019050610667565b50505050905090810190601f1680156106af5780820380516001836020036101000a031916815260200191505b50848103825286818151815260200191508051906020019080838360005b838110156106e85780820151818401526020810190506106cd565b50505050905090810190601f1680156107155780820380516001836020036101000a031916815260200191505b509950505050505050505050602060405180830381600087803b15801561073b57600080fd5b505af115801561074f573d6000803e3d6000fd5b505050506040513d602081101561076557600080fd5b8101908080519060200190929190505050508073ffffffffffffffffffffffffffffffffffffffff1663392e53cd6040518163ffffffff167c010000000000000000000000000000000000000000000000000000000002815260040160206040518083038186803b1580156107d957600080fd5b505afa1580156107ed573d6000803e3d6000fd5b505050506040513d602081101561080357600080fd5b8101908080519060200190929190505050610869576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180610e72602c913960400191505060405180910390fd5b7fb51c8cbe199ffe8b0d1d39b62d473569750653cb18b165f77ae423b3900180ad84600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1685604051808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610953578082015181840152602081019050610938565b50505050905090810190601f1680156109805780820380516001836020036101000a031916815260200191505b5094505050505060405180910390a1816040518082805190602001908083835b602083106109c357805182526020820191506020810190506020830392506109a0565b6001836020036101000a0380198251168184511680821785525050505050509050019150506040518091039020836040518082805190602001908083835b60208310610a245780518252602082019150602081019050602083039250610a01565b6001836020036101000a03801982511681845116808217855250505050505090500191505060405180910390208573ffffffffffffffffffffffffffffffffffffffff167f5242aec5021ca3b80047b99ba11a4f6ee963561e3ca5c01854964affbf18c0897fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff33438b604051808581526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b83811015610b2b578082015181840152602081019050610b10565b50505050905090810190601f168015610b585780820380516001836020036101000a031916815260200191505b509550505050505060405180910390a46001600260008282540192505081905550505050919050565b606082826040516020018083805190602001908083835b60208310610bbb5780518252602082019150602081019050602083039250610b98565b6001836020036101000a03801982511681845116808217855250505050505090500182805190602001908083835b60208310610c0c5780518252602082019150602081019050602083039250610be9565b6001836020036101000a03801982511681845116808217855250505050505090500192505050604051602081830303815290604052905092915050565b60606000821415610c91576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050610d93565b600082905060005b60008214610cbb578080600101915050600a8281610cb357fe5b049150610c99565b6060816040519080825280601f01601f191660200182016040528015610cf05781602001600182028038833980820191505090505b50905060006001830390508593505b60008414610d8b57600a8481610d1157fe5b066030017f01000000000000000000000000000000000000000000000000000000000000000282828060019003935081518110610d4a57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a8481610d8357fe5b049350610cff565b819450505050505b919050565b600080826c010000000000000000000000000290506040517f3d602d80600a3d3981f3363d3d373d3d3d363d7300000000000000000000000081528160148201527f5af43d82803e903d91602b57fd5bf3000000000000000000000000000000000060288201526037816000f09250507f117c72e6c25f0a072e36e148df71468ce2f3dbe7defec5b2c257a6e3eb65278c82604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390a15091905056fe466163746f72793a20556e61626c6520746f20696e697469616c697a6520746f6b656e20696e7374616e6365466163746f72793a204661696c656420746f20706572666f726d206d696e696d616c206465706c6f79206f662061206e657720746f6b656ea165627a7a723058202cbfb0e269d688ce768ad0f31ff6e4db1f8c387141f96271ce308b6d39f6658f0029466163746f72793a20496e76616c696420546f6b656e466163746f727920696e697469616c697a6174696f6e"
// estGas = await Factory.deploy({
// data:factoryBytecode,
// arguments:[template, feeManager]
// })
// .estimateGas(function(err, estGas){
// return estGas
// })
// // deploy the contract and get it's address
// factory = await Factory.deploy({
// data:factoryBytecode,
// arguments:[template, feeManager]
// })
// .send({
// from: minter,
// gas: estGas+1,
// gasPrice: '12345678'
// })
// .then(function(contract){
// return contract.options.address
// })
// })
// describe('#test', () => {
// it('should create Datatoken object', async () => {
// const datatoken = new DataTokens(factory, factoryABI, datatokensABI, web3)
// assert(datatoken !== null)
// })
// it('should create Datatoken contract', async () => {
// const datatoken = new DataTokens(factory, factoryABI, datatokensABI, web3)
// const token = await datatoken.create(blob, minter)
// assert(token !== null)
// })
// it('should mint Datatokens', async () => {
// const datatoken = new DataTokens(factory, factoryABI, datatokensABI, web3)
// const tokenAddress = await datatoken.create(blob, minter)
// await datatoken.mint(tokenAddress, minter, tokenAmount)
// const feeBalance = await web3.eth.getBalance(feeManager)
// assert(feeBalance !== 0)
// })
// })