0.0.1
This commit is contained in:
commit
2420c7517f
|
@ -0,0 +1,68 @@
|
|||
version: 2
|
||||
|
||||
jobs:
|
||||
build:
|
||||
working_directory: ~/ddd
|
||||
docker:
|
||||
- image: circleci/node:latest-browsers
|
||||
steps:
|
||||
- checkout
|
||||
|
||||
- run: strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep GLIBC
|
||||
- run: npm install
|
||||
- run: node -v
|
||||
- run: npm -v
|
||||
- run: google-chrome --version
|
||||
- run: chromedriver -v
|
||||
- run:
|
||||
name: Creating Artifacts
|
||||
command: |
|
||||
sudo echo "my artifact file" > ~/ddd/artifact-1;
|
||||
# sudo mkdir ~/ddd/artifacts;
|
||||
# sudo echo "my artifact files in a dir" > ~/ddd/artifacts/artifact-2;
|
||||
|
||||
#- run:
|
||||
# command: |
|
||||
# cd /
|
||||
#
|
||||
# sudo mkdir -p /etc/opt/chrome/policies/managed
|
||||
# cd ~/ddd
|
||||
# ls -l
|
||||
# sudo cp test_policy.json /etc/opt/chrome/policies/managed
|
||||
# cd /etc/opt/chrome/policies/managed
|
||||
# ls -l
|
||||
# cat test_policy.json
|
||||
# - run: google-chrome
|
||||
# - run: sudo killall chrome
|
||||
|
||||
# - run: sudo mkdir /1 # sudo cp test_policy.json /etc/opt/chrome/policies/managed
|
||||
#- run: cd /1
|
||||
|
||||
|
||||
test:
|
||||
docker:
|
||||
- image: circleci/node:latest-browsers
|
||||
working_directory: ~/ddd
|
||||
steps:
|
||||
- checkout
|
||||
|
||||
- run: node index.js
|
||||
|
||||
|
||||
- store_artifacts:
|
||||
path: ~/ddd/artifacts
|
||||
destination: artifact-file
|
||||
|
||||
- store_artifacts:
|
||||
path: ~/ddd/artifacts
|
||||
#- run:
|
||||
|
||||
|
||||
workflows:
|
||||
version: 2
|
||||
build_and_test:
|
||||
jobs:
|
||||
- build
|
||||
- test:
|
||||
requires:
|
||||
- build
|
|
@ -0,0 +1,4 @@
|
|||
node_modules
|
||||
tempAddr.txt
|
||||
results
|
||||
artifacts
|
|
@ -0,0 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="JavaScriptLibraryMappings">
|
||||
<includedPredefinedLibrary name="Node.js Core" />
|
||||
</component>
|
||||
</project>
|
|
@ -0,0 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="JavaScriptSettings">
|
||||
<option name="languageLevel" value="ES6" />
|
||||
</component>
|
||||
</project>
|
|
@ -0,0 +1,8 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ProjectModuleManager">
|
||||
<modules>
|
||||
<module fileurl="file://$PROJECT_DIR$/.idea/wizardAutomation.iml" filepath="$PROJECT_DIR$/.idea/wizardAutomation.iml" />
|
||||
</modules>
|
||||
</component>
|
||||
</project>
|
|
@ -0,0 +1,11 @@
|
|||
<component name="ProjectRunConfigurationManager">
|
||||
<configuration default="false" name="index" type="NodeJSConfigurationType" factoryName="Node.js" path-to-js-file="index.js" working-dir="$PROJECT_DIR$">
|
||||
<envs>
|
||||
<env name="DEBUG" value="wizardAutomation:*" />
|
||||
</envs>
|
||||
<EXTENSION ID="com.jetbrains.nodejs.run.NodeJSStartBrowserRunConfigurationExtension">
|
||||
<browser url="http://localhost:3000/" />
|
||||
</EXTENSION>
|
||||
<method />
|
||||
</configuration>
|
||||
</component>
|
|
@ -0,0 +1,4 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ProjectTasksOptions" suppressed-tasks="Babel" />
|
||||
</project>
|
|
@ -0,0 +1,12 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<module type="WEB_MODULE" version="4">
|
||||
<component name="NewModuleRootManager">
|
||||
<content url="file://$MODULE_DIR$">
|
||||
<excludeFolder url="file://$MODULE_DIR$/.tmp" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/temp" />
|
||||
<excludeFolder url="file://$MODULE_DIR$/tmp" />
|
||||
</content>
|
||||
<orderEntry type="inheritedJdk" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
</component>
|
||||
</module>
|
|
@ -0,0 +1,544 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="ChangeListManager">
|
||||
<list default="true" id="40b9626d-5f4f-46c4-8096-7de331aaa15a" name="Default" comment="" />
|
||||
<ignored path="$PROJECT_DIR$/.tmp/" />
|
||||
<ignored path="$PROJECT_DIR$/temp/" />
|
||||
<ignored path="$PROJECT_DIR$/tmp/" />
|
||||
<option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
|
||||
<option name="TRACKING_ENABLED" value="true" />
|
||||
<option name="SHOW_DIALOG" value="false" />
|
||||
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
||||
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
|
||||
<option name="LAST_RESOLUTION" value="IGNORE" />
|
||||
</component>
|
||||
<component name="FileEditorManager">
|
||||
<leaf>
|
||||
<file leaf-file-name="Owner.js" pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/entity/Owner.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="143">
|
||||
<caret line="52" column="0" lean-forward="true" selection-start-line="52" selection-start-column="0" selection-end-line="52" selection-end-column="0" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file leaf-file-name="Test2.js" pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/tests/Test2.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="450">
|
||||
<caret line="43" column="27" lean-forward="true" selection-start-line="43" selection-start-column="27" selection-end-line="43" selection-end-column="27" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file leaf-file-name="Page.js" pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/pages/Page.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="90">
|
||||
<caret line="32" column="52" lean-forward="false" selection-start-line="32" selection-start-column="52" selection-end-line="32" selection-end-column="52" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file leaf-file-name="InvestPage.js" pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/pages/InvestPage.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="339">
|
||||
<caret line="29" column="0" lean-forward="false" selection-start-line="29" selection-start-column="0" selection-end-line="29" selection-end-column="0" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file leaf-file-name="Currency.js" pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/entity/Currency.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="2070">
|
||||
<caret line="115" column="63" lean-forward="false" selection-start-line="115" selection-start-column="63" selection-end-line="115" selection-end-column="63" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file leaf-file-name="MetaMask.js" pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/pages/MetaMask.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="918">
|
||||
<caret line="180" column="97" lean-forward="false" selection-start-line="180" selection-start-column="97" selection-end-line="180" selection-end-column="97" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file leaf-file-name="Test1.js" pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/tests/Test1.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="125">
|
||||
<caret line="30" column="16" lean-forward="false" selection-start-line="30" selection-start-column="16" selection-end-line="30" selection-end-column="16" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file leaf-file-name="Crowdsale.js" pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/entity/Crowdsale.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="126">
|
||||
<caret line="7" column="5" lean-forward="true" selection-start-line="7" selection-start-column="5" selection-end-line="7" selection-end-column="5" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file leaf-file-name="Test3.js" pinned="false" current-in-tab="false">
|
||||
<entry file="file://$PROJECT_DIR$/tests/Test3.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="177">
|
||||
<caret line="29" column="46" lean-forward="true" selection-start-line="29" selection-start-column="46" selection-end-line="29" selection-end-column="46" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
<file leaf-file-name="index.js" pinned="false" current-in-tab="true">
|
||||
<entry file="file://$PROJECT_DIR$/index.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="231">
|
||||
<caret line="65" column="0" lean-forward="true" selection-start-line="65" selection-start-column="0" selection-end-line="65" selection-end-column="0" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</file>
|
||||
</leaf>
|
||||
</component>
|
||||
<component name="FileTemplateManagerImpl">
|
||||
<option name="RECENT_TEMPLATES">
|
||||
<list>
|
||||
<option value="JavaScript File" />
|
||||
</list>
|
||||
</option>
|
||||
</component>
|
||||
<component name="FindInProjectRecents">
|
||||
<findStrings>
|
||||
<find>wallet</find>
|
||||
</findStrings>
|
||||
</component>
|
||||
<component name="IdeDocumentHistory">
|
||||
<option name="CHANGED_PATHS">
|
||||
<list>
|
||||
<option value="$PROJECT_DIR$/package.json" />
|
||||
<option value="$PROJECT_DIR$/entity/User.js" />
|
||||
<option value="$PROJECT_DIR$/owners/owner1.json" />
|
||||
<option value="$PROJECT_DIR$/entity/Currency.js" />
|
||||
<option value="$PROJECT_DIR$/pages/WizardStep3.js" />
|
||||
<option value="$PROJECT_DIR$/pages/TransactionPage.js" />
|
||||
<option value="$PROJECT_DIR$/pages/WizardStep4.js" />
|
||||
<option value="$PROJECT_DIR$/scenarios/T1RnWy.json" />
|
||||
<option value="$PROJECT_DIR$/pages/MetaMask.js" />
|
||||
<option value="$PROJECT_DIR$/pages/CrowdsalePage.js" />
|
||||
<option value="$PROJECT_DIR$/entity/Crowdsale.js" />
|
||||
<option value="$PROJECT_DIR$/pages/InvestPage.js" />
|
||||
<option value="$PROJECT_DIR$/tests/Test3.js" />
|
||||
<option value="$PROJECT_DIR$/tests/Test1.js" />
|
||||
<option value="$PROJECT_DIR$/pages/Page.js" />
|
||||
<option value="$PROJECT_DIR$/entity/Owner.js" />
|
||||
<option value="$PROJECT_DIR$/index.js" />
|
||||
</list>
|
||||
</option>
|
||||
</component>
|
||||
<component name="JsBuildToolGruntFileManager" detection-done="true" sorting="DEFINITION_ORDER" />
|
||||
<component name="JsBuildToolPackageJson" detection-done="true" sorting="DEFINITION_ORDER">
|
||||
<package-json value="$PROJECT_DIR$/package.json" />
|
||||
</component>
|
||||
<component name="JsFlowSettings">
|
||||
<service-enabled>true</service-enabled>
|
||||
<exe-path />
|
||||
<other-services-enabled>true</other-services-enabled>
|
||||
<auto-save>true</auto-save>
|
||||
</component>
|
||||
<component name="JsGulpfileManager">
|
||||
<detection-done>true</detection-done>
|
||||
<sorting>DEFINITION_ORDER</sorting>
|
||||
</component>
|
||||
<component name="NodeModulesDirectoryManager">
|
||||
<handled-path value="$PROJECT_DIR$/node_modules" />
|
||||
</component>
|
||||
<component name="ProjectFrameBounds" extendedState="6">
|
||||
<option name="x" value="122" />
|
||||
<option name="y" value="3" />
|
||||
<option name="width" value="1220" />
|
||||
<option name="height" value="499" />
|
||||
</component>
|
||||
<component name="ProjectView">
|
||||
<navigator currentView="ProjectPane" proportions="" version="1">
|
||||
<flattenPackages />
|
||||
<showMembers />
|
||||
<showModules />
|
||||
<showLibraryContents />
|
||||
<hideEmptyPackages />
|
||||
<abbreviatePackageNames />
|
||||
<autoscrollToSource />
|
||||
<autoscrollFromSource />
|
||||
<sortByType />
|
||||
<manualOrder />
|
||||
<foldersAlwaysOnTop value="true" />
|
||||
</navigator>
|
||||
<panes>
|
||||
<pane id="ProjectPane">
|
||||
<subPane>
|
||||
<expand>
|
||||
<path>
|
||||
<item name="wizardAutomation" type="b2602c69:ProjectViewProjectNode" />
|
||||
<item name="wizardAutomation" type="462c0819:PsiDirectoryNode" />
|
||||
</path>
|
||||
<path>
|
||||
<item name="wizardAutomation" type="b2602c69:ProjectViewProjectNode" />
|
||||
<item name="wizardAutomation" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="entity" type="462c0819:PsiDirectoryNode" />
|
||||
</path>
|
||||
<path>
|
||||
<item name="wizardAutomation" type="b2602c69:ProjectViewProjectNode" />
|
||||
<item name="wizardAutomation" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="owners" type="462c0819:PsiDirectoryNode" />
|
||||
</path>
|
||||
<path>
|
||||
<item name="wizardAutomation" type="b2602c69:ProjectViewProjectNode" />
|
||||
<item name="wizardAutomation" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="pages" type="462c0819:PsiDirectoryNode" />
|
||||
</path>
|
||||
<path>
|
||||
<item name="wizardAutomation" type="b2602c69:ProjectViewProjectNode" />
|
||||
<item name="wizardAutomation" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="tests" type="462c0819:PsiDirectoryNode" />
|
||||
</path>
|
||||
<path>
|
||||
<item name="wizardAutomation" type="b2602c69:ProjectViewProjectNode" />
|
||||
<item name="wizardAutomation" type="462c0819:PsiDirectoryNode" />
|
||||
<item name="utils" type="462c0819:PsiDirectoryNode" />
|
||||
</path>
|
||||
</expand>
|
||||
<select />
|
||||
</subPane>
|
||||
</pane>
|
||||
<pane id="Scope" />
|
||||
<pane id="Scratches" />
|
||||
</panes>
|
||||
</component>
|
||||
<component name="PropertiesComponent">
|
||||
<property name="nodejs_interpreter_path.stuck_in_default_project" value="undefined stuck path" />
|
||||
<property name="last_opened_file_path" value="$PROJECT_DIR$/index.js" />
|
||||
<property name="WebServerToolWindowFactoryState" value="false" />
|
||||
<property name="nodejs_interpreter_path" value="node" />
|
||||
<property name="javascript.nodejs.core.library.configured.version" value="8.9.4" />
|
||||
<property name="HbShouldOpenHtmlAsHb" value="" />
|
||||
<property name="settings.editor.selected.configurable" value="Settings.JavaScript" />
|
||||
<property name="JavaScriptWeakerCompletionTypeGuess" value="true" />
|
||||
</component>
|
||||
<component name="RunDashboard">
|
||||
<option name="ruleStates">
|
||||
<list>
|
||||
<RuleState>
|
||||
<option name="name" value="ConfigurationTypeDashboardGroupingRule" />
|
||||
</RuleState>
|
||||
<RuleState>
|
||||
<option name="name" value="StatusDashboardGroupingRule" />
|
||||
</RuleState>
|
||||
</list>
|
||||
</option>
|
||||
</component>
|
||||
<component name="ShelveChangesManager" show_recycled="false">
|
||||
<option name="remove_strategy" value="false" />
|
||||
</component>
|
||||
<component name="SvnConfiguration">
|
||||
<configuration />
|
||||
</component>
|
||||
<component name="TaskManager">
|
||||
<task active="true" id="Default" summary="Default task">
|
||||
<changelist id="40b9626d-5f4f-46c4-8096-7de331aaa15a" name="Default" comment="" />
|
||||
<created>1518556474417</created>
|
||||
<option name="number" value="Default" />
|
||||
<option name="presentableId" value="Default" />
|
||||
<updated>1518556474417</updated>
|
||||
<workItem from="1518556481423" duration="17461000" />
|
||||
</task>
|
||||
<servers />
|
||||
</component>
|
||||
<component name="TimeTrackingManager">
|
||||
<option name="totallyTimeSpent" value="17461000" />
|
||||
</component>
|
||||
<component name="ToolWindowManager">
|
||||
<frame x="47" y="-4" width="1319" height="772" extended-state="6" />
|
||||
<editor active="true" />
|
||||
<layout>
|
||||
<window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.15277778" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
|
||||
<window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Docker" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="false" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="true" content_ui="tabs" />
|
||||
<window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32868218" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.33333334" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="false" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="npm" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="true" content_ui="tabs" />
|
||||
<window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.32868218" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="-1" side_tool="true" content_ui="tabs" />
|
||||
<window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
|
||||
<window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
|
||||
<window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
|
||||
</layout>
|
||||
</component>
|
||||
<component name="TypeScriptGeneratedFilesManager">
|
||||
<option name="version" value="1" />
|
||||
</component>
|
||||
<component name="VcsContentAnnotationSettings">
|
||||
<option name="myLimit" value="2678400000" />
|
||||
</component>
|
||||
<component name="XDebuggerManager">
|
||||
<breakpoint-manager>
|
||||
<option name="time" value="1" />
|
||||
</breakpoint-manager>
|
||||
<watches-manager />
|
||||
</component>
|
||||
<component name="editorHistoryManager">
|
||||
<entry file="file://$PROJECT_DIR$/package.json">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="216">
|
||||
<caret line="12" column="0" lean-forward="false" selection-start-line="12" selection-start-column="0" selection-end-line="12" selection-end-column="0" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/entity/User.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="126">
|
||||
<caret line="7" column="25" lean-forward="false" selection-start-line="7" selection-start-column="25" selection-end-line="7" selection-end-column="25" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/tests/BaseTest.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="162">
|
||||
<caret line="9" column="19" lean-forward="false" selection-start-line="9" selection-start-column="19" selection-end-line="9" selection-end-column="19" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/config.json">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="0">
|
||||
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/scenarios/T1RnWn_0005.json">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="0">
|
||||
<caret line="9" column="0" lean-forward="false" selection-start-line="9" selection-start-column="0" selection-end-line="9" selection-end-column="0" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/testAccounts.json">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="54">
|
||||
<caret line="3" column="55" lean-forward="false" selection-start-line="3" selection-start-column="13" selection-end-line="3" selection-end-column="55" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/entity/Tier.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="216">
|
||||
<caret line="12" column="25" lean-forward="false" selection-start-line="12" selection-start-column="25" selection-end-line="12" selection-end-column="25" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/entity/MetaMaskWallet.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="-198">
|
||||
<caret line="7" column="19" lean-forward="false" selection-start-line="7" selection-start-column="19" selection-end-line="7" selection-end-column="19" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/views/error.jade">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="0">
|
||||
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/routes/index.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="0">
|
||||
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/public/stylesheets/style.css">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="0">
|
||||
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/utils/Utils.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="126">
|
||||
<caret line="90" column="68" lean-forward="false" selection-start-line="90" selection-start-column="68" selection-end-line="90" selection-end-column="68" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/scenarios/T1RnWy.json">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="414">
|
||||
<caret line="23" column="29" lean-forward="false" selection-start-line="23" selection-start-column="29" selection-end-line="23" selection-end-column="29" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/pages/TransactionPage.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="90">
|
||||
<caret line="5" column="0" lean-forward="false" selection-start-line="4" selection-start-column="0" selection-end-line="5" selection-end-column="0" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/pages/WizardStep3.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="234">
|
||||
<caret line="19" column="0" lean-forward="false" selection-start-line="19" selection-start-column="0" selection-end-line="19" selection-end-column="0" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/pages/WizardStep4.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="54">
|
||||
<caret line="9" column="32" lean-forward="true" selection-start-line="9" selection-start-column="32" selection-end-line="9" selection-end-column="32" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/pages/TierPage.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="0">
|
||||
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/owners/owner1.json">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="36">
|
||||
<caret line="2" column="81" lean-forward="false" selection-start-line="2" selection-start-column="17" selection-end-line="2" selection-end-column="81" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/entity/Currency.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="2070">
|
||||
<caret line="115" column="63" lean-forward="false" selection-start-line="115" selection-start-column="63" selection-end-line="115" selection-end-column="63" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/pages/MetaMask.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="918">
|
||||
<caret line="180" column="97" lean-forward="false" selection-start-line="180" selection-start-column="97" selection-end-line="180" selection-end-column="97" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/pages/CrowdsalePage.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="0">
|
||||
<caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/pages/InvestPage.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="339">
|
||||
<caret line="29" column="0" lean-forward="false" selection-start-line="29" selection-start-column="0" selection-end-line="29" selection-end-column="0" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/tests/Test3.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="177">
|
||||
<caret line="29" column="46" lean-forward="true" selection-start-line="29" selection-start-column="46" selection-end-line="29" selection-end-column="46" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/entity/Crowdsale.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="126">
|
||||
<caret line="7" column="5" lean-forward="true" selection-start-line="7" selection-start-column="5" selection-end-line="7" selection-end-column="5" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/pages/Page.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="90">
|
||||
<caret line="32" column="52" lean-forward="false" selection-start-line="32" selection-start-column="52" selection-end-line="32" selection-end-column="52" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/tests/Test1.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="125">
|
||||
<caret line="30" column="16" lean-forward="false" selection-start-line="30" selection-start-column="16" selection-end-line="30" selection-end-column="16" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/entity/Owner.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="143">
|
||||
<caret line="52" column="0" lean-forward="true" selection-start-line="52" selection-start-column="0" selection-end-line="52" selection-end-column="0" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/tests/Test2.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="450">
|
||||
<caret line="43" column="27" lean-forward="true" selection-start-line="43" selection-start-column="27" selection-end-line="43" selection-end-column="27" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
<entry file="file://$PROJECT_DIR$/index.js">
|
||||
<provider selected="true" editor-type-id="text-editor">
|
||||
<state relative-caret-position="231">
|
||||
<caret line="65" column="0" lean-forward="true" selection-start-line="65" selection-start-column="0" selection-end-line="65" selection-end-column="0" />
|
||||
<folding />
|
||||
</state>
|
||||
</provider>
|
||||
</entry>
|
||||
</component>
|
||||
</project>
|
Binary file not shown.
|
@ -0,0 +1,12 @@
|
|||
0: Olympic, Ethereum public pre-release testnet
|
||||
1: Frontier, Homestead, Metropolis, the Ethereum public main network
|
||||
1: Classic, the (un)forked public Ethereum Classic main network, chain ID 61
|
||||
1: Expanse, an alternative Ethereum implementation, chain ID 2
|
||||
2: Morden, the public Ethereum testnet, now Ethereum Classic testnet
|
||||
3: Ropsten, the public cross-client Ethereum testnet
|
||||
4: Rinkeby, the public Geth PoA testnet
|
||||
42: Kovan, the public Parity PoA testnet
|
||||
77: Sokol, the public POA Network testnet, https://sokol.poa.network
|
||||
99: Core, the public POA Network main network,https://core.poa.network
|
||||
7762959: Musicoin, the music blockchain
|
||||
8545:localhost8545
|
|
@ -0,0 +1,144 @@
|
|||
## Scrypt for creating new crowdsale https://wizard.poa.network/
|
||||
v 1.0.35 Added testing scenarios: ./scenarios
|
||||
v 1.0.38 Added executable files
|
||||
|
||||
## Getting Started
|
||||
|
||||
### Installation
|
||||
```
|
||||
https://github.com/poanetwork/e2e-test-token-wizard
|
||||
```
|
||||
```
|
||||
npm install create-poa-crowdsale
|
||||
```
|
||||
### Usage
|
||||
```
|
||||
const CreatePOACrowdsale=require('create-poa-crowdsale');
|
||||
|
||||
const createPOACrowdsale=CreatePOACrowdsale.createPOACrowdsale;
|
||||
|
||||
var myCrowdsale=createPOACrowdsale( "config.json");
|
||||
```
|
||||
where:
|
||||
|
||||
* ```config.json``` is _.json_ file in working directory (see example below) with configuration parameters.
|
||||
|
||||
### Package includes executable files
|
||||
* ```index-linux``` for Linux
|
||||
* ```index-macos``` for macOS
|
||||
* ```index-windows``` for Windows
|
||||
|
||||
run with command ```./<file_name>```
|
||||
|
||||
local directory should contain ```config.json```, ```scenario.json```, ```MetaMask.crx```
|
||||
|
||||
|
||||
### Prerequisites
|
||||
|
||||
* Google-chrome browser should be installed
|
||||
|
||||
|
||||
## Scrypt performs:
|
||||
|
||||
* open pre-installed Chrome browser
|
||||
* install MetaMask Chrome extension: https://chrome.google.com/webstore/detail/metamask/nkbihfbeogaeaoehlefnkodbefgpgknn?hl=en
|
||||
* activate MetaMask with given account number,private key and network. Data from ```config.json```
|
||||
* go through Token Wizard with given data in ```scenario file``` (field "scenario" in ```config.json```)
|
||||
* save result's files in ```./result*``` , folder will be created
|
||||
* package includes the file ```./circleci/config.yml``` for CI server: https://circleci.com/
|
||||
### Example ```config.json```:
|
||||
```
|
||||
{
|
||||
"startURL" : "https://wizard.poa.network/",
|
||||
"installMetaMask":true,
|
||||
"scenario":"T1RnWn.json"
|
||||
}
|
||||
```
|
||||
### Example ```scenario.json```:
|
||||
```
|
||||
{
|
||||
"account": "0xF16AB2EA0a7F7B28C267cbA3Ed211Ea5c6e27411",
|
||||
"privateKey": "03c06a9fab22fe0add145e337c5a8251e140f74468d72eab17ec7419ab812cd0",
|
||||
"networkID":4,
|
||||
|
||||
|
||||
"name": "MySuperCoin",
|
||||
"ticker": "MSC",
|
||||
"decimals": 0,
|
||||
"reservedTokens":[
|
||||
{
|
||||
"address" :"0x6f53002497203d167771eb0852b4c1caDA7a585f",
|
||||
"dimension": "percentage",
|
||||
"value": 20
|
||||
},
|
||||
{
|
||||
"address" :"0x42f0143F2E9Ab64CA3811bbA08E40D798C18E7f4",
|
||||
"dimension": "tokens",
|
||||
"value": 10
|
||||
}],
|
||||
"walletAddress":"0xF16AB2EA0a7F7B28C267cbA3Ed211Ea5c6e27411",
|
||||
"gasprice": 100,
|
||||
"mincap": 1,
|
||||
"whitelisting":false,
|
||||
"tiers":[
|
||||
{
|
||||
"name":"###1",
|
||||
"allowModify": true,
|
||||
"startDate": "02/07/2018",
|
||||
"startTime": "4:40pm",
|
||||
"endDate":"02/07/2018",
|
||||
"endTime":"8:00pm",
|
||||
"rate":100,
|
||||
"supply": 200,
|
||||
"whitelist":[
|
||||
{
|
||||
"address":"0x6f53002497203d167771eb0852b4c1caDA7a585f",
|
||||
"min":6,
|
||||
"max":100
|
||||
},
|
||||
{
|
||||
"address":"0x42f0143F2E9Ab64CA3811bbA08E40D798C18E7f4",
|
||||
"min":8,
|
||||
"max":55
|
||||
}]
|
||||
},
|
||||
{
|
||||
"name":"###2",
|
||||
"allowModify": true,
|
||||
"startDate": "08/08/2019",
|
||||
"startTime": "2:34am",
|
||||
"endDate":"08/10/2019",
|
||||
"endTime":"11:34pm",
|
||||
"rate":40,
|
||||
"supply": 2300,
|
||||
"whitelist":[
|
||||
{
|
||||
"address":"0x6f53002497203d167771eb0852b4c1caDA7a585f",
|
||||
"min":6,
|
||||
"max":100
|
||||
},
|
||||
{
|
||||
"address":"0x42f0143F2E9Ab64CA3811bbA08E40D798C18E7f4",
|
||||
"min":8,
|
||||
"max":55
|
||||
}]
|
||||
}]
|
||||
|
||||
}
|
||||
```
|
||||
|
||||
|
||||
where networkID=
|
||||
```
|
||||
0,1,2 - Main Ethereum network;
|
||||
3 - Ropsten;
|
||||
4 - Rinkeby;
|
||||
42 - Kovan;
|
||||
77 - Sokol;
|
||||
99 - Poa core;
|
||||
8545 - localhost 8545
|
||||
```
|
||||
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,90 @@
|
|||
#!/usr/bin/env node
|
||||
|
||||
/**
|
||||
* Module dependencies.
|
||||
*/
|
||||
|
||||
var app = require('../app');
|
||||
var debug = require('debug')('wizardautomation:server');
|
||||
var http = require('http');
|
||||
|
||||
/**
|
||||
* Get port from environment and store in Express.
|
||||
*/
|
||||
|
||||
var port = normalizePort(process.env.PORT || '3000');
|
||||
app.set('port', port);
|
||||
|
||||
/**
|
||||
* Create HTTP server.
|
||||
*/
|
||||
|
||||
var server = http.createServer(app);
|
||||
|
||||
/**
|
||||
* Listen on provided port, on all network interfaces.
|
||||
*/
|
||||
|
||||
server.listen(port);
|
||||
server.on('error', onError);
|
||||
server.on('listening', onListening);
|
||||
|
||||
/**
|
||||
* Normalize a port into a number, string, or false.
|
||||
*/
|
||||
|
||||
function normalizePort(val) {
|
||||
var port = parseInt(val, 10);
|
||||
|
||||
if (isNaN(port)) {
|
||||
// named pipe
|
||||
return val;
|
||||
}
|
||||
|
||||
if (port >= 0) {
|
||||
// port number
|
||||
return port;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Event listener for HTTP server "error" event.
|
||||
*/
|
||||
|
||||
function onError(error) {
|
||||
if (error.syscall !== 'listen') {
|
||||
throw error;
|
||||
}
|
||||
|
||||
var bind = typeof port === 'string'
|
||||
? 'Pipe ' + port
|
||||
: 'Port ' + port;
|
||||
|
||||
// handle specific listen errors with friendly messages
|
||||
switch (error.code) {
|
||||
case 'EACCES':
|
||||
console.error(bind + ' requires elevated privileges');
|
||||
process.exit(1);
|
||||
break;
|
||||
case 'EADDRINUSE':
|
||||
console.error(bind + ' is already in use');
|
||||
process.exit(1);
|
||||
break;
|
||||
default:
|
||||
throw error;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Event listener for HTTP server "listening" event.
|
||||
*/
|
||||
|
||||
function onListening() {
|
||||
var addr = server.address();
|
||||
var bind = typeof addr === 'string'
|
||||
? 'pipe ' + addr
|
||||
: 'port ' + addr.port;
|
||||
debug('Listening on ' + bind);
|
||||
}
|
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
"startURL" : "https://wizard.poa.network/",
|
||||
"installMetaMask":true,
|
||||
"scenario":"./scenarios/T2RnWyMy_0016.json"
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
class Crowdsale {
|
||||
|
||||
constructor(currency,tokenAddress,contractAddress,url){
|
||||
this.currency=currency;
|
||||
this.tokenAddress=tokenAddress;
|
||||
this.contractAddress=contractAddress;
|
||||
this.url=url;
|
||||
}
|
||||
|
||||
}
|
||||
module.exports.Crowdsale=Crowdsale;
|
|
@ -0,0 +1,134 @@
|
|||
console.log(module.filename);
|
||||
const fs = require('fs');
|
||||
const tier=require('./Tier.js');
|
||||
const Tier=tier.Tier;
|
||||
const reservedTokens=require('./ReservedTokens.js');
|
||||
const ReservedTokens=reservedTokens.ReservedTokens;
|
||||
const whitelist=require('./Whitelist.js');
|
||||
const Whitelist=whitelist.Whitelist;
|
||||
class Currency{
|
||||
|
||||
constructor()
|
||||
{
|
||||
this.name;
|
||||
this.ticker;
|
||||
this.walletAddress;
|
||||
this.reservedTokens=[];
|
||||
this.whitelist=[];
|
||||
this.gasPrice;
|
||||
this.minCap;
|
||||
this.whitelisting=false;
|
||||
this.tiers=[];
|
||||
}
|
||||
|
||||
|
||||
|
||||
static createCurrency(fileName){
|
||||
var c=new Currency();
|
||||
c.parser(fileName);
|
||||
|
||||
return c;
|
||||
|
||||
}
|
||||
|
||||
parser(fileName){
|
||||
console.log(fileName);
|
||||
var obj=JSON.parse(fs.readFileSync(fileName,"utf8"));
|
||||
|
||||
this.name=obj.name;
|
||||
this.ticker=obj.ticker;
|
||||
this.decimals=obj.decimals;
|
||||
|
||||
for (var i=0;i<obj.reservedTokens.length;i++)
|
||||
{
|
||||
this.reservedTokens.push(
|
||||
new ReservedTokens(
|
||||
obj.reservedTokens[i].address,
|
||||
obj.reservedTokens[i].dimension,
|
||||
obj.reservedTokens[i].value
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
this.walletAddress=obj.walletAddress;
|
||||
|
||||
this.gasPrice=obj.gasprice;
|
||||
this.minCap=obj.mincap;
|
||||
this.whitelisting=obj.whitelisting;
|
||||
for (var i=0;i<obj.tiers.length;i++)
|
||||
{
|
||||
var wh;
|
||||
if (this.whitelisting) wh=obj.tiers[i].whitelist;
|
||||
else wh=null;
|
||||
this.tiers.push(
|
||||
new Tier(obj.tiers[i].name,
|
||||
obj.tiers[i].allowModify,
|
||||
obj.tiers[i].rate,
|
||||
obj.tiers[i].supply,
|
||||
obj.tiers[i].startTime,
|
||||
obj.tiers[i].startDate,
|
||||
obj.tiers[i].endTime,
|
||||
obj.tiers[i].endDate,
|
||||
wh
|
||||
|
||||
)
|
||||
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
print(){
|
||||
console.log("name :"+this.name);
|
||||
console.log("ticker :"+this.ticker);
|
||||
console.log("decimals:"+this.decimals);
|
||||
console.log("Reserved Tokens:"+this.reservedTokens.length);
|
||||
|
||||
for (var i=0;i<this.reservedTokens.length;i++)
|
||||
{
|
||||
console.log("reserved tokens#:"+i);
|
||||
console.log("Address:"+this.reservedTokens[i].address);
|
||||
console.log("Dimension:"+this.reservedTokens[i].dimension);
|
||||
console.log("Value:"+this.reservedTokens[i].value);
|
||||
|
||||
}
|
||||
console.log("Whitelisting:"+this.whitelisting);
|
||||
console.log("WalletAddress:"+this.walletAddress);
|
||||
console.log("gasprice:"+this.gasPrice);
|
||||
console.log("mincap:"+this.minCap);
|
||||
|
||||
|
||||
console.log("Number of tiers:"+this.tiers.length);
|
||||
for (var i=0;i<this.tiers.length;i++)
|
||||
{
|
||||
console.log("Tier #"+i);
|
||||
console.log("name:"+this.tiers[i].name);
|
||||
console.log("allowModify:"+this.tiers[i].allowModify);
|
||||
console.log("startDate:"+this.tiers[i].startDate);
|
||||
console.log("startTime:"+this.tiers[i].startTime);
|
||||
console.log("endDate:"+this.tiers[i].endDate);
|
||||
console.log("endTime:"+this.tiers[i].endTime);
|
||||
console.log("rate:"+this.tiers[i].rate);
|
||||
console.log("supply:"+this.tiers[i].supply);
|
||||
if(this.tiers[i].whitelist!=null) {
|
||||
console.log("Whitelist:" + this.tiers[i].whitelist.length);
|
||||
for (var j = 0; j < this.tiers[i].whitelist.length; j++) {
|
||||
console.log("whitelist#:" + j);
|
||||
console.log("Address:" + this.tiers[i].whitelist[j].address);
|
||||
console.log("Min:" + this.tiers[j].whitelist[j].min);
|
||||
console.log("Max:" + this.tiers[j].whitelist[j].max);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
module.exports={
|
||||
Currency:Currency
|
||||
}
|
|
@ -0,0 +1,43 @@
|
|||
const fs = require('fs');
|
||||
|
||||
|
||||
|
||||
class MetaMaskWallet {
|
||||
|
||||
constructor() {
|
||||
this.privateKey;
|
||||
|
||||
this.account;
|
||||
this.networkID;
|
||||
|
||||
}
|
||||
static createMetaMaskWallet(fileName){
|
||||
var c=new MetaMaskWallet();
|
||||
//by default
|
||||
//c.account="0xF16AB2EA0a7F7B28C267cbA3Ed211Ea5c6e27411";
|
||||
// c.privateKey="03c06a9fab22fe0add145e337c5a8251e140f74468d72eab17ec7419ab812cd0";
|
||||
// c.networkID=4;//1-main network by default
|
||||
c.parser(fileName);
|
||||
|
||||
return c;
|
||||
|
||||
}
|
||||
parser(fileName){
|
||||
|
||||
var obj=JSON.parse(fs.readFileSync(fileName,"utf8"));
|
||||
this.account=obj.account;
|
||||
this.privateKey=obj.privateKey;
|
||||
this.networkID=obj.networkID;
|
||||
}
|
||||
print(){
|
||||
console.log("account:"+this.account);
|
||||
console.log("privateKey:"+this.privateKey);
|
||||
console.log("networkID:"+this.networkID);
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
module.exports={
|
||||
MetaMaskWallet:MetaMaskWallet
|
||||
}
|
|
@ -0,0 +1,197 @@
|
|||
const user=require("./User.js");
|
||||
const User=user.User;
|
||||
const by = require('selenium-webdriver/lib/by');
|
||||
const By=by.By;
|
||||
const wizardWelcome=require('../pages/WizardWelcome.js');
|
||||
const meta=require('../pages/MetaMask.js');
|
||||
|
||||
const wizStep1=require('../pages/WizardStep1.js');
|
||||
const wizStep2=require('../pages/WizardStep2.js');
|
||||
const wizStep3=require('../pages/WizardStep3.js');
|
||||
const wizStep4=require('../pages/WizardStep4.js');
|
||||
|
||||
const tierpage=require('../pages/TierPage.js');
|
||||
const TierPage=tierpage.TierPage;
|
||||
const reservedTokensPage=require('../pages/ReservedTokensPage.js');
|
||||
const ReservedTokensPage=reservedTokensPage.ReservedTokensPage;
|
||||
|
||||
const utils=require('../utils/Utils.js');
|
||||
const Utils=utils.Utils;
|
||||
const fs = require('fs');
|
||||
const currency= require('../entity/Currency.js');
|
||||
const Currency=currency.Currency;
|
||||
const metaMaskWallet=require('../entity/MetaMaskWallet.js');
|
||||
const MetaMaskWallet=metaMaskWallet.MetaMaskWallet;
|
||||
const crowdPage=require('../pages/CrowdsalePage.js');
|
||||
const invest=require('../pages/InvestPage.js');
|
||||
const StartBrowserWithMetamask=require('../utils/Utils.js');
|
||||
const startBrowserWithMetamask=StartBrowserWithMetamask.startBrowserWithMetamask;
|
||||
const crowdsale=require('../entity/Crowdsale.js');
|
||||
const Crowdsale=crowdsale.Crowdsale;
|
||||
const timeLimitTransactions=80;
|
||||
const buttonSubmit=require('../pages/MetaMask.js');
|
||||
const buttonContinue=require('../pages/WizardStep4.js');
|
||||
|
||||
class Owner
|
||||
{
|
||||
constructor(driver,file){
|
||||
this.driver=driver;
|
||||
var obj=JSON.parse(fs.readFileSync(file,"utf8"));
|
||||
this.account=obj.account;
|
||||
this.privateKey=obj.privateKey;
|
||||
this.networkID=obj.networkID;
|
||||
}
|
||||
|
||||
print(){
|
||||
console.log("account:"+this.account);
|
||||
console.log("privateKey:"+this.privateKey);
|
||||
console.log("networkID:"+this.networkID);
|
||||
|
||||
}
|
||||
|
||||
openManage(){
|
||||
|
||||
}
|
||||
|
||||
distribute(){}
|
||||
|
||||
finalize(){}
|
||||
|
||||
|
||||
getAmount(){}
|
||||
|
||||
|
||||
|
||||
async createCrowdsale(scenarioFile){
|
||||
var utils=new Utils();
|
||||
var d=new Date();
|
||||
var outputDirectory="./results"+d.getTime();
|
||||
fs.mkdirSync(outputDirectory);
|
||||
fs.writeFileSync(outputDirectory+'/result.log', "Test start time:"+d.getTime());
|
||||
const startURL="https://wizard.poa.network/";
|
||||
var welcomePage = new wizardWelcome.WizardWelcome(this.driver,startURL);
|
||||
var wallet=new MetaMaskWallet();
|
||||
wallet.account=this.account;
|
||||
wallet.privateKey=this.privateKey;
|
||||
wallet.networkID=this.networkID;
|
||||
var metaMask = new meta.MetaMask(this.driver,wallet);
|
||||
var wizardStep1 = new wizStep1.WizardStep1(this.driver);
|
||||
var wizardStep2 = new wizStep2.WizardStep2(this.driver);
|
||||
var wizardStep3 = new wizStep3.WizardStep3(this.driver);
|
||||
var wizardStep4 = new wizStep4.WizardStep4(this.driver);
|
||||
var crowdsalePage = new crowdPage.CrowdsalePage(this.driver);
|
||||
var investPage = new invest.InvestPage(this.driver);
|
||||
var reservedTokens=new ReservedTokensPage(this.driver);
|
||||
var cur=Currency.createCurrency(scenarioFile);
|
||||
cur.print();
|
||||
var tiers=[];
|
||||
for (var i=0;i<cur.tiers.length;i++)
|
||||
tiers.push(new TierPage(this.driver,cur.tiers[i]));
|
||||
metaMask.setAccount(this);
|
||||
welcomePage.open();
|
||||
welcomePage.clickButtonNewCrowdsale();
|
||||
this.driver.sleep(2000);
|
||||
wizardStep1.clickButtonContinue();
|
||||
this.driver.sleep(500);
|
||||
wizardStep2.fillName(cur.name);
|
||||
wizardStep2.fillTicker(cur.ticker);
|
||||
wizardStep2.fillDecimals(cur.decimals);
|
||||
for (var i=0;i<cur.reservedTokens.length;i++)
|
||||
{
|
||||
reservedTokens.fillReservedTokens(cur.reservedTokens[i]);
|
||||
reservedTokens.clickButtonAddReservedTokens();
|
||||
}
|
||||
utils.zoom(this.driver,0.5);
|
||||
utils.takeScreenshoot(this.driver,outputDirectory);
|
||||
utils.zoom(this.driver,1);
|
||||
wizardStep2.clickButtonContinue();
|
||||
wizardStep3.fillWalletAddress(cur.walletAddress);
|
||||
wizardStep3.setGasPrice(cur.gasPrice);
|
||||
if (cur.whitelisting) wizardStep3.clickCheckboWhitelistYes();
|
||||
else (wizardStep3.fillMinCap(cur.minCap));
|
||||
utils.takeScreenshoot(this.driver,outputDirectory);
|
||||
for (var i=0;i<cur.tiers.length-1;i++)
|
||||
{
|
||||
tiers[i].fillTier();
|
||||
utils.takeScreenshoot(this.driver,outputDirectory);
|
||||
wizardStep3.clickButtonAddTier();
|
||||
}
|
||||
tiers[cur.tiers.length-1].fillTier();
|
||||
utils.takeScreenshoot(this.driver,outputDirectory);
|
||||
wizardStep3.clickButtonContinue();
|
||||
this.driver.sleep(2000);
|
||||
if (!(await wizardStep4.isPage()))throw new Error('incorrect data in tiers');
|
||||
|
||||
var trCounter=0;
|
||||
var b=true;
|
||||
var timeLimit=timeLimitTransactions*cur.tiers.length;
|
||||
do {
|
||||
metaMask.switchToAnotherPage();
|
||||
this.driver.sleep(6000);
|
||||
metaMask.refresh();
|
||||
this.driver.sleep(1000);
|
||||
if ( await metaMask.isPresentButtonSubmit()) {
|
||||
metaMask.submitTransaction();
|
||||
trCounter++;
|
||||
console.log("Transaction#"+trCounter);
|
||||
}
|
||||
welcomePage.switchToAnotherPage();
|
||||
this.driver.sleep(1000);
|
||||
if (!(await wizardStep4.isPage())) {
|
||||
this.driver.sleep(2000);
|
||||
wizardStep4.clickButtonOk();
|
||||
b=false;
|
||||
}
|
||||
if((timeLimit--)==0)
|
||||
{ var s="Deployment failed.Transaction were done:"+ trCounter;
|
||||
fs.appendFileSync(outputDirectory+'/result.log',"\n"+s);
|
||||
console.log(s);
|
||||
b=false;}
|
||||
} while (b);
|
||||
|
||||
utils.takeScreenshoot(this.driver,outputDirectory);
|
||||
wizardStep4.clickButtonContinue();
|
||||
this.driver.sleep(5000);
|
||||
utils.takeScreenshoot(this.driver,outputDirectory);
|
||||
|
||||
b=true;
|
||||
var counter=30;
|
||||
|
||||
do {
|
||||
try {
|
||||
this.driver.sleep(1000);
|
||||
crowdsalePage.clickButtonInvest();
|
||||
b=false;
|
||||
}
|
||||
catch (err){
|
||||
counter++;
|
||||
}
|
||||
} while (b);
|
||||
utils.takeScreenshoot(this.driver,outputDirectory);
|
||||
this.driver.getCurrentUrl().then((res)=>{
|
||||
console.log("Final invest page link: "+res);
|
||||
fs.appendFileSync(outputDirectory+'/result.log', "\n\Final invest page link: \""+res);
|
||||
fs.writeFileSync('./artifacts/result.log', res);//for circleci
|
||||
});
|
||||
s="Transaction were done: "+ trCounter;
|
||||
console.log(s);
|
||||
fs.appendFileSync(outputDirectory+'/result.log',s+'\n');
|
||||
fs.appendFileSync(outputDirectory+'/result.log', "Test end time:"+new Date().getTime()+'\n');
|
||||
|
||||
|
||||
return
|
||||
await new Crowdsale(cur,
|
||||
await investPage.getTokenAddress(),
|
||||
await investPage.getContractAddress(),
|
||||
await investPage.getURL()
|
||||
);
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
module.exports.Owner=Owner;
|
|
@ -0,0 +1,17 @@
|
|||
|
||||
|
||||
class ReservedTokens {
|
||||
|
||||
constructor(address, dimension, value) {
|
||||
|
||||
this.address = address;
|
||||
this.dimension = dimension;
|
||||
this.value = value;
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
module.exports.ReservedTokens=ReservedTokens;
|
|
@ -0,0 +1,24 @@
|
|||
class Tier{
|
||||
constructor(name,allowModify,rate,supply,startTime,startDate,endTime,endDate,whitelist){
|
||||
|
||||
|
||||
this.name=name;
|
||||
this.allowModify=allowModify;
|
||||
this.rate=rate;
|
||||
this.supply=supply;
|
||||
this.startTime=startTime;
|
||||
this.startDate=startDate;
|
||||
this.endTime=endTime;
|
||||
this.endDate=endDate;
|
||||
this.whitelist=whitelist;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
module.exports.Tier=Tier;
|
|
@ -0,0 +1,8 @@
|
|||
class User {
|
||||
constructor (account){
|
||||
|
||||
this.account=account;
|
||||
}
|
||||
|
||||
}
|
||||
module.exports.User=User;
|
|
@ -0,0 +1,15 @@
|
|||
class Whitelist {
|
||||
|
||||
constructor(address, min, max) {
|
||||
|
||||
this.address = address;
|
||||
this.min = min;
|
||||
this.max = max;
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
module.exports.Whitelist=Whitelist;
|
|
@ -0,0 +1,75 @@
|
|||
|
||||
|
||||
const test1=require('./tests/Test1.js');
|
||||
const Test1=test1.Test1;
|
||||
const test2=require('./tests/Test2.js');
|
||||
const Test2=test2.Test2;
|
||||
const test3=require('./tests/Test3.js');
|
||||
const Test3=test3.Test3;
|
||||
|
||||
const utils=require('./utils/Utils.js');
|
||||
const Utils=utils.Utils;
|
||||
const page=require('./pages/Page.js');
|
||||
const wizardWelcome=require('./pages/WizardWelcome.js');
|
||||
const metaMask=require('./pages/MetaMask.js');
|
||||
const MetaMask=metaMask.MetaMask;
|
||||
|
||||
const webdriver = require('selenium-webdriver'),
|
||||
chrome = require('selenium-webdriver/chrome'),
|
||||
firefox = require('selenium-webdriver/firefox'),
|
||||
by = require('selenium-webdriver/lib/by');
|
||||
const By=by.By;
|
||||
const currency= require('./entity/Currency.js');
|
||||
const Currency=currency.Currency;
|
||||
const metaMaskWallet=require('./entity/MetaMaskWallet.js');
|
||||
const MetaMaskWallet=metaMaskWallet.MetaMaskWallet;
|
||||
const tierpage=require('./pages/TierPage.js');
|
||||
const TierPage=tierpage.TierPage;
|
||||
const Web3 = require('web3');
|
||||
const fs = require('fs');
|
||||
///////////////////////////////////////
|
||||
createPOACrowdsale('config.json');
|
||||
//ttt();
|
||||
|
||||
function ttt(){
|
||||
var util=new Utils();
|
||||
var driver=util.startBrowser();
|
||||
//var test3=new Test3(driver);
|
||||
driver.get("https://wizard.poa.network/invest?addr=0xcB82AF7fD8Baa5A144Eaa90101c4901D987f9bf5&networkID=4");
|
||||
|
||||
}
|
||||
function createPOACrowdsale(configFile) {
|
||||
if (!fs.existsSync("./artifacts"))
|
||||
fs.mkdirSync("./artifacts");//for CIRCLECI
|
||||
var driver;
|
||||
var util=new Utils();
|
||||
if (util.getInstallMetamask(configFile))
|
||||
driver = util.startBrowserWithMetamask();
|
||||
else
|
||||
driver=util.startBrowser();
|
||||
// var testManage = new Test2(driver,configFile);
|
||||
//testManage.run();
|
||||
var wallet=new MetaMaskWallet();
|
||||
wallet.account=this.account;
|
||||
wallet.privateKey=this.privateKey;
|
||||
wallet.networkID=this.networkID;
|
||||
var mtMask = new MetaMask(driver,wallet);
|
||||
mtMask.open();//return activated Metamask and empty page
|
||||
|
||||
|
||||
var testWizard = new Test1(driver);
|
||||
testWizard.run().then().catch();
|
||||
// var test = new Test3(driver);
|
||||
// test.run().then().catch();
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
module.exports={
|
||||
createPOACrowdsale:createPOACrowdsale
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
"account": "0xF16AB2EA0a7F7B28C267cbA3Ed211Ea5c6e27411",
|
||||
"privateKey": "03c06a9fab22fe0add145e337c5a8251e140f74468d72eab17ec7419ab812cd0",
|
||||
"networkID": 4
|
||||
}
|
|
@ -0,0 +1,249 @@
|
|||
{
|
||||
"name": "wizardautomation",
|
||||
"version": "0.0.0",
|
||||
"lockfileVersion": 1,
|
||||
"requires": true,
|
||||
"dependencies": {
|
||||
"balanced-match": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
|
||||
"integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c="
|
||||
},
|
||||
"bignumber.js": {
|
||||
"version": "git+https://github.com/frozeman/bignumber.js-nolookahead.git#57692b3ecfc98bbdd6b3a516cb2353652ea49934"
|
||||
},
|
||||
"brace-expansion": {
|
||||
"version": "1.1.11",
|
||||
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
|
||||
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
|
||||
"requires": {
|
||||
"balanced-match": "1.0.0",
|
||||
"concat-map": "0.0.1"
|
||||
}
|
||||
},
|
||||
"concat-map": {
|
||||
"version": "0.0.1",
|
||||
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
|
||||
"integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
|
||||
},
|
||||
"core-js": {
|
||||
"version": "2.3.0",
|
||||
"resolved": "https://registry.npmjs.org/core-js/-/core-js-2.3.0.tgz",
|
||||
"integrity": "sha1-+rg/uwstjchfpjbEudNMdUIMbWU="
|
||||
},
|
||||
"core-util-is": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
|
||||
"integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
|
||||
},
|
||||
"crypto-js": {
|
||||
"version": "3.1.8",
|
||||
"resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-3.1.8.tgz",
|
||||
"integrity": "sha1-cV8HC/YBTyrpkqmLOSkli3E/CNU="
|
||||
},
|
||||
"es6-promise": {
|
||||
"version": "3.0.2",
|
||||
"resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.0.2.tgz",
|
||||
"integrity": "sha1-AQ1YWEI6XxGJeWZfRkhqlcbuK7Y="
|
||||
},
|
||||
"fs.realpath": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
|
||||
"integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
|
||||
},
|
||||
"glob": {
|
||||
"version": "7.1.2",
|
||||
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
|
||||
"integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==",
|
||||
"requires": {
|
||||
"fs.realpath": "1.0.0",
|
||||
"inflight": "1.0.6",
|
||||
"inherits": "2.0.3",
|
||||
"minimatch": "3.0.4",
|
||||
"once": "1.4.0",
|
||||
"path-is-absolute": "1.0.1"
|
||||
}
|
||||
},
|
||||
"immediate": {
|
||||
"version": "3.0.6",
|
||||
"resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz",
|
||||
"integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps="
|
||||
},
|
||||
"inflight": {
|
||||
"version": "1.0.6",
|
||||
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
|
||||
"integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
|
||||
"requires": {
|
||||
"once": "1.4.0",
|
||||
"wrappy": "1.0.2"
|
||||
}
|
||||
},
|
||||
"inherits": {
|
||||
"version": "2.0.3",
|
||||
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
|
||||
"integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
|
||||
},
|
||||
"isarray": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
|
||||
"integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
|
||||
},
|
||||
"jszip": {
|
||||
"version": "3.1.5",
|
||||
"resolved": "https://registry.npmjs.org/jszip/-/jszip-3.1.5.tgz",
|
||||
"integrity": "sha512-5W8NUaFRFRqTOL7ZDDrx5qWHJyBXy6velVudIzQUSoqAAYqzSh2Z7/m0Rf1QbmQJccegD0r+YZxBjzqoBiEeJQ==",
|
||||
"requires": {
|
||||
"core-js": "2.3.0",
|
||||
"es6-promise": "3.0.2",
|
||||
"lie": "3.1.1",
|
||||
"pako": "1.0.6",
|
||||
"readable-stream": "2.0.6"
|
||||
}
|
||||
},
|
||||
"lie": {
|
||||
"version": "3.1.1",
|
||||
"resolved": "https://registry.npmjs.org/lie/-/lie-3.1.1.tgz",
|
||||
"integrity": "sha1-mkNrLMd0bKWd56QfpGmz77dr2H4=",
|
||||
"requires": {
|
||||
"immediate": "3.0.6"
|
||||
}
|
||||
},
|
||||
"minimatch": {
|
||||
"version": "3.0.4",
|
||||
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
|
||||
"integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
|
||||
"requires": {
|
||||
"brace-expansion": "1.1.11"
|
||||
}
|
||||
},
|
||||
"once": {
|
||||
"version": "1.4.0",
|
||||
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
|
||||
"integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
|
||||
"requires": {
|
||||
"wrappy": "1.0.2"
|
||||
}
|
||||
},
|
||||
"os-tmpdir": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
|
||||
"integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ="
|
||||
},
|
||||
"pako": {
|
||||
"version": "1.0.6",
|
||||
"resolved": "https://registry.npmjs.org/pako/-/pako-1.0.6.tgz",
|
||||
"integrity": "sha512-lQe48YPsMJAig+yngZ87Lus+NF+3mtu7DVOBu6b/gHO1YpKwIj5AWjZ/TOS7i46HD/UixzWb1zeWDZfGZ3iYcg=="
|
||||
},
|
||||
"path-is-absolute": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
|
||||
"integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18="
|
||||
},
|
||||
"process-nextick-args": {
|
||||
"version": "1.0.7",
|
||||
"resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz",
|
||||
"integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M="
|
||||
},
|
||||
"readable-stream": {
|
||||
"version": "2.0.6",
|
||||
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz",
|
||||
"integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=",
|
||||
"requires": {
|
||||
"core-util-is": "1.0.2",
|
||||
"inherits": "2.0.3",
|
||||
"isarray": "1.0.0",
|
||||
"process-nextick-args": "1.0.7",
|
||||
"string_decoder": "0.10.31",
|
||||
"util-deprecate": "1.0.2"
|
||||
}
|
||||
},
|
||||
"rimraf": {
|
||||
"version": "2.6.2",
|
||||
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz",
|
||||
"integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==",
|
||||
"requires": {
|
||||
"glob": "7.1.2"
|
||||
}
|
||||
},
|
||||
"sax": {
|
||||
"version": "1.2.4",
|
||||
"resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
|
||||
"integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw=="
|
||||
},
|
||||
"selenium-webdriver": {
|
||||
"version": "3.6.0",
|
||||
"resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-3.6.0.tgz",
|
||||
"integrity": "sha512-WH7Aldse+2P5bbFBO4Gle/nuQOdVwpHMTL6raL3uuBj/vPG07k6uzt3aiahu352ONBr5xXh0hDlM3LhtXPOC4Q==",
|
||||
"requires": {
|
||||
"jszip": "3.1.5",
|
||||
"rimraf": "2.6.2",
|
||||
"tmp": "0.0.30",
|
||||
"xml2js": "0.4.19"
|
||||
}
|
||||
},
|
||||
"string_decoder": {
|
||||
"version": "0.10.31",
|
||||
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
|
||||
"integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ="
|
||||
},
|
||||
"tmp": {
|
||||
"version": "0.0.30",
|
||||
"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.30.tgz",
|
||||
"integrity": "sha1-ckGdSovn1s51FI/YsyTlk6cRwu0=",
|
||||
"requires": {
|
||||
"os-tmpdir": "1.0.2"
|
||||
}
|
||||
},
|
||||
"utf8": {
|
||||
"version": "2.1.2",
|
||||
"resolved": "https://registry.npmjs.org/utf8/-/utf8-2.1.2.tgz",
|
||||
"integrity": "sha1-H6DZJw6b6FDZsFAn9jUZv0ZFfZY="
|
||||
},
|
||||
"util-deprecate": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
|
||||
"integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
|
||||
},
|
||||
"web3": {
|
||||
"version": "0.20.5",
|
||||
"resolved": "https://registry.npmjs.org/web3/-/web3-0.20.5.tgz",
|
||||
"integrity": "sha1-xQSNNfe/TixMKAzlH7u8lRKQsWU=",
|
||||
"requires": {
|
||||
"bignumber.js": "git+https://github.com/frozeman/bignumber.js-nolookahead.git#57692b3ecfc98bbdd6b3a516cb2353652ea49934",
|
||||
"crypto-js": "3.1.8",
|
||||
"utf8": "2.1.2",
|
||||
"xhr2": "0.1.4",
|
||||
"xmlhttprequest": "1.8.0"
|
||||
}
|
||||
},
|
||||
"wrappy": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
|
||||
"integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
|
||||
},
|
||||
"xhr2": {
|
||||
"version": "0.1.4",
|
||||
"resolved": "https://registry.npmjs.org/xhr2/-/xhr2-0.1.4.tgz",
|
||||
"integrity": "sha1-f4dliEdxbbUCYyOBL4GMras4el8="
|
||||
},
|
||||
"xml2js": {
|
||||
"version": "0.4.19",
|
||||
"resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.19.tgz",
|
||||
"integrity": "sha512-esZnJZJOiJR9wWKMyuvSE1y6Dq5LCuJanqhxslH2bxM6duahNZ+HMpCLhBQGZkbX6xRf8x1Y2eJlgt2q3qo49Q==",
|
||||
"requires": {
|
||||
"sax": "1.2.4",
|
||||
"xmlbuilder": "9.0.7"
|
||||
}
|
||||
},
|
||||
"xmlbuilder": {
|
||||
"version": "9.0.7",
|
||||
"resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz",
|
||||
"integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0="
|
||||
},
|
||||
"xmlhttprequest": {
|
||||
"version": "1.8.0",
|
||||
"resolved": "https://registry.npmjs.org/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz",
|
||||
"integrity": "sha1-Z/4HXFwk/vOfnWX197f+dRcZaPw="
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
{
|
||||
"name": "wizardautomation",
|
||||
"version": "0.0.0",
|
||||
"private": false,
|
||||
"scripts": {
|
||||
"start": "node ./bin/www"
|
||||
},
|
||||
"dependencies": {
|
||||
"selenium-webdriver": "^3.6.0",
|
||||
"web3": "^0.20.4"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,27 @@
|
|||
|
||||
const page=require('./Page.js');
|
||||
const webdriver = require('selenium-webdriver'),
|
||||
chrome = require('selenium-webdriver/chrome'),
|
||||
firefox = require('selenium-webdriver/firefox'),
|
||||
by = require('selenium-webdriver/lib/by');
|
||||
const By=by.By;
|
||||
const buttonInvest=By.xpath('//*[@id="root"]/div/section/div[3]/a');
|
||||
|
||||
|
||||
class CrowdsalePage extends page.Page{
|
||||
|
||||
constructor(driver){
|
||||
super(driver);
|
||||
this.URL;
|
||||
|
||||
}
|
||||
|
||||
clickButtonInvest(){
|
||||
super.clickWithWait(buttonInvest);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
module.exports={
|
||||
CrowdsalePage:CrowdsalePage
|
||||
}
|
|
@ -0,0 +1,36 @@
|
|||
|
||||
const page=require('./Page.js');
|
||||
const webdriver = require('selenium-webdriver'),
|
||||
chrome = require('selenium-webdriver/chrome'),
|
||||
firefox = require('selenium-webdriver/firefox'),
|
||||
by = require('selenium-webdriver/lib/by');
|
||||
const By=by.By;
|
||||
const buttonContribute=By.xpath('//*[@id="root"]/div/div[1]/div[1]/div[2]/form/div[2]/a');
|
||||
const fieldTokenAddress=By.xpath("//*[@id=\"root\"]/div/div[1]/div[1]/div[1]/div[2]/div[2]/p[1]");
|
||||
const fieldContractAddress=By.xpath("//*[@id=\"root\"]/div/div[1]/div[1]/div[1]/div[2]/div[3]/p[1]");
|
||||
|
||||
class InvestPage extends page.Page{
|
||||
|
||||
constructor(driver){
|
||||
super(driver);
|
||||
this.URL;
|
||||
|
||||
}
|
||||
|
||||
clickButtonContribute(){
|
||||
super.clickWithWait(buttonContribute);
|
||||
}
|
||||
|
||||
getTokenAddress(){
|
||||
return super.getText(fieldTokenAddress);
|
||||
}
|
||||
getContractAddress(){
|
||||
return super.getText(fieldContractAddress);
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
module.exports={
|
||||
InvestPage:InvestPage
|
||||
}
|
|
@ -0,0 +1,55 @@
|
|||
const by = require('selenium-webdriver/lib/by');
|
||||
const page=require('./Page.js');
|
||||
const Page=page.Page;
|
||||
const By=by.By;
|
||||
const utils=require('../utils//Utils.js');
|
||||
const Utils=utils.Utils;
|
||||
const firstContract=By.xpath("//*[@id=\"root\"]/div/div[1]/section/div[3]/div/div[1]/div/div[2]/div[1]/div");
|
||||
const buttonDistribute=By.xpath("//*[@id=\"root\"]/div/section/div[1]/div/a/span");
|
||||
const buttonFinalize=By.xpath("//*[@id=\"root\"]/div/section/div[2]/div/a/span");
|
||||
|
||||
class ManagePage extends Page
|
||||
{
|
||||
constructor(driver) {
|
||||
super(driver);
|
||||
this.URL;
|
||||
|
||||
}
|
||||
//https://wizard.poa.network/manage/0x7eB29E0922C87D728c81A9FAB66e97668c917108
|
||||
open(){
|
||||
|
||||
this.driver.get(this.URL);
|
||||
|
||||
}
|
||||
async isAvailable(){
|
||||
return await super.isElementPresent(firstContract);
|
||||
}
|
||||
async isAvailableDistribute(){
|
||||
return await this.driver.findElement(buttonDistribute).isEnabled();
|
||||
}
|
||||
async isAvailableFinalize(){
|
||||
return await this.driver.findElement(buttonFinalize).isEnabled();
|
||||
}
|
||||
async isPresentButtonFinalize(){
|
||||
return await super.isElementPresent(buttonFinalize);
|
||||
}
|
||||
|
||||
async clickButtonDistribute(){
|
||||
super.clickWithWait(buttonDistribute);
|
||||
}
|
||||
|
||||
clickButtonFinalize(){
|
||||
this.driver.sleep(500);
|
||||
super.clickWithWait(buttonFinalize);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
module.exports={
|
||||
ManagePage:ManagePage
|
||||
}
|
|
@ -0,0 +1,211 @@
|
|||
const key = require('selenium-webdriver').Key;
|
||||
const page=require('./Page.js');
|
||||
const webdriver = require('selenium-webdriver'),
|
||||
chrome = require('selenium-webdriver/chrome'),
|
||||
firefox = require('selenium-webdriver/firefox'),
|
||||
by = require('selenium-webdriver/lib/by');
|
||||
const By=by.By;
|
||||
//"chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn//popup.html"
|
||||
const IDMetaMask="nkbihfbeogaeaoehlefnkodbefgpgknn";
|
||||
const URL="chrome-extension://"+IDMetaMask+"//popup.html";
|
||||
const passMetaMask="kindzadza";
|
||||
const fieldEnterPass= By.xpath("//*[@id=\"password-box\"]");
|
||||
const buttonUnlock=By.xpath("//*[@id=\"app-content\"]/div/div[4]/div/div[1]/button");
|
||||
const buttonBuy= By.xpath("//*[@id=\"app-content\"]/div/div[4]/div/div/div[2]/button[1]");
|
||||
const buttonSend= By.xpath("//*[@id=\"app-content\"]/div/div[4]/div/div/div[2]/button[2]");
|
||||
const buttonSubmit=By.xpath("//*[@id=\"pending-tx-form\"]/div[3]/input");
|
||||
const fieldGasPrise=By.xpath("//*[@id=\"pending-tx-form\"]/div[1]/div[2]/div[3]/div[2]/div/div/input");
|
||||
///////Imported from TestCircle//////
|
||||
const buttonAccept=By.xpath('//*[@id="app-content"]/div/div[4]/div/button');
|
||||
const agreement=By.xpath("//*[@id=\"app-content\"]/div/div[4]/div/div/div/p[1]/strong");
|
||||
const fieldNewPass=By.xpath("//*[@id=\"password-box\"]");
|
||||
const fieldConfirmPass=By.xpath("//*[@id=\"password-box-confirm\"]");
|
||||
const buttonCreate=By.xpath("//*[@id=\"app-content\"]/div/div[4]/div/button");
|
||||
const fieldSecretWords=By.xpath("//*[@id=\"app-content\"]/div/div[4]/div/textarea");
|
||||
const buttonIveCopied=By.xpath("//*[@id=\"app-content\"]/div/div[4]/div/button[1]");
|
||||
//const popupNetwork=By.xpath("//*[@id=\"network_component\"]/div/i");
|
||||
const popupNetwork=By.className("network-name");
|
||||
//const popupRinkeby=By.className("menu-icon golden-square");
|
||||
const popupRinkeby=By.css("Rinkeby Test Network");
|
||||
|
||||
|
||||
const popupAccount=By.xpath("//*[@id=\"app-content\"]/div/div[1]/div/div[2]/span/div");
|
||||
const popupImportAccount=By.xpath("//*[@id=\"app-content\"]/div/div[1]/div/div[2]/span/div/div/span/div/li[3]/span");
|
||||
const popupImportAccountCSS="#app-content > div > div.full-width > div > div:nth-child(2) > span > div > div > span > div > li:nth-child(4) > span";
|
||||
const fieldPrivateKey=By.xpath("//*[@id=\"private-key-box\"]");
|
||||
const pass="kindzadza";
|
||||
const buttonImport=By.xpath("//*[@id=\"app-content\"]/div/div[4]/div/div[3]/button");
|
||||
const secretWords="mask divorce brief insane improve effort ranch forest width accuse wall ride";
|
||||
const amountEth=By.xpath("//*[@id=\"app-content\"]/div/div[4]/div/div/div[2]/div[1]/div/div/div[1]/div[1]");
|
||||
const fieldNewRPCURL=By.id("new_rpc");
|
||||
const buttonSave=By.xpath("//*[@id=\"app-content\"]/div/div[4]/div/div[3]/div/div[2]/button");
|
||||
//const arrowBackRPCURL=By.className("fa fa-arrow-left fa-lg cursor-pointer");
|
||||
const arrowBackRPCURL=By.xpath("//*[@id=\"app-content\"]/div/div[4]/div/div[1]/i");
|
||||
var accN=2;
|
||||
var lengthNetworkMenu=6;
|
||||
var networks=[];
|
||||
|
||||
|
||||
|
||||
class MetaMask extends page.Page{
|
||||
|
||||
constructor(driver,wallet){
|
||||
super(driver);
|
||||
this.URL=URL;
|
||||
this.wallet=wallet;
|
||||
|
||||
|
||||
}
|
||||
isButtonSubmitPresent(){}
|
||||
setGasPriceTransaction(price){
|
||||
super.fillWithWait(fieldGasPrise,price);
|
||||
}
|
||||
|
||||
|
||||
clickButtonSubmit(){
|
||||
super.clickWithWait(buttonSubmit);
|
||||
|
||||
}
|
||||
clickPopupNetwork(){
|
||||
super.clickWithWait(popupNetwork);
|
||||
|
||||
}
|
||||
isReadyTransaction(){
|
||||
return this.isElementPresent(buttonSubmit);
|
||||
}
|
||||
submitTransaction(){
|
||||
this.clickButtonSubmit();
|
||||
|
||||
}
|
||||
|
||||
unlock() {
|
||||
//this.open();
|
||||
super.fillWithWait(fieldEnterPass,passMetaMask);
|
||||
super.clickWithWait(buttonUnlock);
|
||||
}
|
||||
|
||||
open()
|
||||
{
|
||||
|
||||
this.driver.get(this.URL);
|
||||
super.clickWithWait(buttonAccept);
|
||||
const action=this.driver.actions();
|
||||
|
||||
action.click(this.driver.findElement(agreement)).perform();
|
||||
|
||||
for (var i=0;i<9;i++) {
|
||||
action.sendKeys(key.TAB).perform();
|
||||
|
||||
}
|
||||
super.clickWithWait(buttonAccept);
|
||||
super.fillWithWait(fieldNewPass,pass);
|
||||
super.fillWithWait(fieldConfirmPass,pass);
|
||||
super.clickWithWait(buttonCreate);
|
||||
this.driver.sleep(1500);
|
||||
super.clickWithWait(buttonIveCopied);
|
||||
this.switchToAnotherPage();
|
||||
|
||||
}
|
||||
clickDotMenu(){
|
||||
super.clickWithWait(dotMenu);
|
||||
}
|
||||
|
||||
|
||||
getAddressWallet(){
|
||||
//super.clickWithWait(addrWallet);
|
||||
return this.driver.findElement(addrWallet).getText();
|
||||
|
||||
}
|
||||
setAccount(user){
|
||||
this.switchToAnotherPage();
|
||||
this.chooseProvider(user.networkID);
|
||||
super.clickWithWait(popupAccount);
|
||||
this.driver.executeScript("document.getElementsByClassName('dropdown-menu-item')[2].click();");
|
||||
|
||||
|
||||
super.fillWithWait(fieldPrivateKey,user.privateKey);
|
||||
this.driver.sleep(1500);
|
||||
super.clickWithWait(buttonImport);
|
||||
this.switchToAnotherPage();
|
||||
}
|
||||
|
||||
activate(user){
|
||||
|
||||
|
||||
this.chooseProvider(user.networkID);
|
||||
|
||||
super.clickWithWait(popupAccount);
|
||||
this.driver.executeScript("document.getElementsByClassName('dropdown-menu-item')[2].click();");
|
||||
|
||||
|
||||
super.fillWithWait(fieldPrivateKey,this.owner.privateKey);
|
||||
this.driver.sleep(1500);
|
||||
super.clickWithWait(buttonImport);
|
||||
|
||||
}
|
||||
|
||||
async isPresentButtonSubmit()
|
||||
{
|
||||
return await super.isElementPresent(buttonSubmit);
|
||||
}
|
||||
|
||||
chooseProvider(provider){
|
||||
super.clickWithWait(popupNetwork);
|
||||
|
||||
var n;
|
||||
switch(provider)
|
||||
{
|
||||
case 0:{n=0;break;} //Olympic=>Main
|
||||
case 1:{n=0;break;} //Main
|
||||
case 2:{n=0;break;} //Mordern=>Main
|
||||
case 3:{n=1;break;} //Ropsten
|
||||
case 4:{n=3;break;} //Rinkeby
|
||||
case 8545:{n=4;break;} //localhost8545
|
||||
case 42:{n=2;break;} //Kovan
|
||||
default:{
|
||||
|
||||
this.addNetwork(provider);
|
||||
}
|
||||
}
|
||||
if (n<=4)this.driver.executeScript("document.getElementsByClassName('dropdown-menu-item')["+n+"].click();");
|
||||
|
||||
}
|
||||
addNetwork(provider){
|
||||
var url;
|
||||
|
||||
switch(provider)
|
||||
{
|
||||
case 77:{url="https://sokol.poa.network";break;}//Sokol
|
||||
case 99:{url="https://core.poa.network";break;} //POA
|
||||
case 7762959:{url="https://sokol.poa.network";break;} //Musicoin=>SOKOL
|
||||
default:{throw("RPC Network not found. Check 'networkID' in scenario(owner,investor) file");}
|
||||
}
|
||||
this.driver.executeScript("" +
|
||||
"document.getElementsByClassName('dropdown-menu-item')["+(lengthNetworkMenu-1)+"].click();");
|
||||
super.fillWithWait(fieldNewRPCURL,url);
|
||||
super.clickWithWait(buttonSave);
|
||||
|
||||
this.driver.sleep(1000);
|
||||
super.clickWithWait(arrowBackRPCURL);
|
||||
lengthNetworkMenu++;
|
||||
|
||||
|
||||
|
||||
|
||||
};
|
||||
|
||||
createAccount(){
|
||||
super.clickWithWait(popupAccount);
|
||||
this.driver.executeScript(
|
||||
"document.getElementsByClassName('dropdown-menu-item')["+accN+"].click();");
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
module.exports={
|
||||
MetaMask:MetaMask,
|
||||
buttonSubmit:buttonSubmit
|
||||
|
||||
}
|
|
@ -0,0 +1,99 @@
|
|||
|
||||
const webdriver = require('selenium-webdriver'),
|
||||
chrome = require('selenium-webdriver/chrome'),
|
||||
firefox = require('selenium-webdriver/firefox'),
|
||||
by = require('selenium-webdriver/lib/by');
|
||||
const key = require('selenium-webdriver').Key;
|
||||
const Twait=20000;
|
||||
|
||||
|
||||
class Page {
|
||||
|
||||
constructor(driver){
|
||||
this.driver=driver;
|
||||
this.pageID;
|
||||
this.footer;
|
||||
this.header;
|
||||
}
|
||||
|
||||
async isElementPresent(element) {
|
||||
var q;
|
||||
try {
|
||||
q = await this.driver.findElement(element).isDisplayed();
|
||||
} catch (err) {
|
||||
q = false;
|
||||
}
|
||||
|
||||
return q;
|
||||
|
||||
}
|
||||
|
||||
async getText(element)
|
||||
{
|
||||
return await this.driver.findElement(element).getText();
|
||||
}
|
||||
async getURL()
|
||||
{
|
||||
return await this.driver.getCurrentUrl();
|
||||
}
|
||||
open (url){
|
||||
this.driver.get(url);
|
||||
}
|
||||
clearField(element){
|
||||
let field = this.driver.wait(webdriver.until.elementLocated(element), Twait);
|
||||
const c=key.chord(key.CONTROL,"a");
|
||||
const action=this.driver.actions();
|
||||
action.click(field).perform();
|
||||
//action.click(field).perform();
|
||||
this.driver.sleep(500);
|
||||
action.sendKeys(c).perform();
|
||||
action.sendKeys(key.DELETE).perform();
|
||||
action.sendKeys(key.DELETE).perform();
|
||||
|
||||
|
||||
}
|
||||
oneClick(element){
|
||||
this.driver.findElement(element).click();
|
||||
}
|
||||
|
||||
clickWithWait(element) {
|
||||
let button = this.driver.wait(webdriver.until.elementLocated(element), Twait);
|
||||
button.click();
|
||||
}
|
||||
fillWithWait(element,k) {
|
||||
let field = this.driver.wait(webdriver.until.elementLocated(element), Twait);
|
||||
field.sendKeys(k);
|
||||
|
||||
}
|
||||
refresh(){
|
||||
this.driver.navigate().refresh();
|
||||
}
|
||||
|
||||
switchToAnotherPage(){
|
||||
let dr=this.driver;
|
||||
|
||||
dr.getWindowHandle().then(function (mainWindowHandle) {
|
||||
|
||||
dr.getAllWindowHandles().then(function (windowHandles) {
|
||||
|
||||
windowHandles.forEach(function(handle){
|
||||
|
||||
if(!(handle===mainWindowHandle))
|
||||
{
|
||||
dr.switchTo().window(handle);
|
||||
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
module.exports.Page=Page;
|
|
@ -0,0 +1,64 @@
|
|||
const page=require('./Page.js');
|
||||
const Page=page.Page;
|
||||
const by = require('selenium-webdriver/lib/by');
|
||||
const By=by.By;
|
||||
const fieldAddress=By.xpath("//*[@id=\"root\"]/div/section/div[2]/div[4]/div/div[1]/div[1]/input");
|
||||
const checkboxTokens=By.xpath("//*[@id=\"root\"]/div/section/div[2]/div[4]/div/div[1]/div[2]/div/label[1]/span");
|
||||
const checkboxPercentage=By.xpath("//*[@id=\"root\"]/div/section/div[2]/div[4]/div/div[1]/div[2]/div/label[2]/span");
|
||||
const fieldValue=By.xpath("//*[@id=\"root\"]/div/section/div[2]/div[4]/div/div[1]/div[3]/input");
|
||||
const buttonAdd=By.xpath("//*[@id=\"root\"]/div/section/div[2]/div[4]/div/div[2]/div");
|
||||
|
||||
class ReservedTokensPage extends Page{
|
||||
|
||||
constructor(driver) {
|
||||
super(driver);
|
||||
this.URL;
|
||||
|
||||
}
|
||||
|
||||
|
||||
fillReservedTokens(reservedTokens){
|
||||
|
||||
try {
|
||||
if (reservedTokens.address == undefined) return;
|
||||
|
||||
|
||||
this.fillAddress(reservedTokens.address);
|
||||
this.setDimension(reservedTokens.dimension);
|
||||
this.fillValue(reservedTokens.value);
|
||||
}
|
||||
catch (err){console.log("Reserved tokens: Incorrect data")}
|
||||
|
||||
}
|
||||
|
||||
|
||||
setDimension(dimension){
|
||||
if (dimension=='percentage') this.clickCheckboxPercentage();
|
||||
else this.clickCheckboxTokens();
|
||||
}
|
||||
|
||||
|
||||
fillAddress(address){
|
||||
|
||||
super.fillWithWait(fieldAddress,address);
|
||||
}
|
||||
fillValue(value){
|
||||
|
||||
super.fillWithWait(fieldValue,value);
|
||||
}
|
||||
|
||||
clickCheckboxPercentage(){
|
||||
super.clickWithWait(checkboxPercentage);
|
||||
|
||||
}
|
||||
clickCheckboxTokens(){
|
||||
super.clickWithWait(checkboxTokens);
|
||||
}
|
||||
clickButtonAddReservedTokens(){
|
||||
super.clickWithWait(buttonAdd);
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
module.exports.ReservedTokensPage=ReservedTokensPage;
|
|
@ -0,0 +1,200 @@
|
|||
console.log(module.filename);
|
||||
const key = require('selenium-webdriver').Key;
|
||||
const page=require('./Page.js');
|
||||
const webdriver = require('selenium-webdriver'),
|
||||
chrome = require('selenium-webdriver/chrome'),
|
||||
firefox = require('selenium-webdriver/firefox'),
|
||||
by = require('selenium-webdriver/lib/by');
|
||||
const By=by.By;
|
||||
var COUNT_TIERS=0;
|
||||
const fieldAddressTier1=By.xpath("//*[@id=\"root\"]/div/section/div[3]/div[2]/div[2]/div/div[1]/div[1]/input");
|
||||
const fieldAddress1="//*[@id=\"root\"]/div/section/div[4]/div[";
|
||||
const fieldAddress2="]/div[2]/div[2]/div/div[1]/div[1]/input";
|
||||
|
||||
const fieldMinTier1=By.xpath("//*[@id=\"root\"]/div/section/div[3]/div[2]/div[2]/div/div[1]/div[2]/input");
|
||||
const fieldMin1="//*[@id=\"root\"]/div/section/div[4]/div[";
|
||||
const fieldMin2="]/div[2]/div[2]/div/div[1]/div[2]/input";
|
||||
|
||||
const fieldMaxTier1=By.xpath("//*[@id=\"root\"]/div/section/div[3]/div[2]/div[2]/div/div[1]/div[3]/input");
|
||||
const fieldMax1="//*[@id=\"root\"]/div/section/div[4]/div[";
|
||||
const fieldMax2="]/div[2]/div[2]/div/div[1]/div[3]/input";
|
||||
|
||||
const buttonAdd=By.className("button button_fill button_fill_plus");
|
||||
const buttonAdd1="//*[@id=\"root\"]/div/section/div[4]/div[";
|
||||
const buttonAdd2="]/div[2]/div[2]/div/div[2]/div";
|
||||
|
||||
const fieldNameTier1=By.xpath("//*[@id=\"root\"]/div/section/div[3]/div/div[1]/div[1]/input\n");
|
||||
const checkboxModifyOffTier1=By.xpath("//*[@id=\"root\"]/div/section/div[3]/div/div[1]/div[2]/div/label[2]/span\n");
|
||||
const checkboxModifyOnTier1=By.xpath("//*[@id=\"root\"]/div/section/div[3]/div/div[1]/div[2]/div/label[1]/span");
|
||||
const fieldRateTier1=By.xpath("//*[@id=\"root\"]/div/section/div[3]/div/div[3]/div[1]/input");
|
||||
const fieldSupplyTier1=By.xpath("//*[@id=\"root\"]/div/section/div[3]/div/div[3]/div[2]/input");
|
||||
const fieldStartTimeTier1=By.xpath("//*[@id=\"root\"]/div/section/div[3]/div/div[2]/div[1]/input");
|
||||
const fieldEndTimeTier1=By.xpath("//*[@id=\"root\"]/div/section/div[3]/div/div[2]/div[2]/input");
|
||||
|
||||
const fieldName1="//*[@id=\"root\"]/div/section/div[4]/div[";
|
||||
const fieldName2="]/div/div[1]/div[1]/input";
|
||||
const fieldRate1="//*[@id=\"root\"]/div/section/div[4]/div[";
|
||||
const fieldRate2="]/div/div[3]/div[1]/input";
|
||||
|
||||
|
||||
const fieldSupply1="//*[@id=\"root\"]/div/section/div[4]/div[";
|
||||
const fieldSupply2="]/div/div[3]/div[2]/input\n";
|
||||
|
||||
const checkboxModifyOn1="//*[@id=\"root\"]/div/section/div[4]/div[";
|
||||
const checkboxModifyOn2="]/div/div[1]/div[2]/div/label[1]/span\n";
|
||||
const checkboxModifyOff1="//*[@id=\"root\"]/div/section/div[4]/div[";
|
||||
const checkboxModifyOff2="]/div/div[1]/div[2]/div/label[2]/span\n";
|
||||
|
||||
const fieldStartTime1="//*[@id=\"root\"]/div/section/div[4]/div[";
|
||||
const fieldStartTime2="]/div/div[2]/div[1]/input";
|
||||
|
||||
const fieldEndTime1="//*[@id=\"root\"]/div/section/div[4]/div[";
|
||||
const fieldEndTime2="]/div/div[2]/div[2]/input";
|
||||
|
||||
|
||||
class TierPage extends page.Page{
|
||||
|
||||
constructor(driver,tier){
|
||||
super(driver);
|
||||
this.URL;
|
||||
this.tier=tier;
|
||||
this.number=COUNT_TIERS++;
|
||||
|
||||
|
||||
}
|
||||
print(){
|
||||
console.log(typeof(this.tier));
|
||||
}
|
||||
|
||||
fillTier()
|
||||
{
|
||||
this.fillSetupName();
|
||||
this.fillRate();
|
||||
this.fillSupply();
|
||||
this.setModify();
|
||||
this.fillStartTime();
|
||||
this.fillEndTime();
|
||||
if (this.tier.whitelist!=null)
|
||||
this.fillWhitelist();
|
||||
|
||||
}
|
||||
|
||||
fillSetupName()
|
||||
{
|
||||
|
||||
let locator;
|
||||
if (this.number==0) {locator=fieldNameTier1;}
|
||||
else {locator=by.By.xpath(fieldName1+this.number+fieldName2);}
|
||||
super.clearField(locator);
|
||||
super.fillWithWait(locator,this.tier.name);
|
||||
|
||||
}
|
||||
fillRate()
|
||||
{
|
||||
let locator;
|
||||
if (this.number==0) {locator=fieldRateTier1;}
|
||||
else {locator=by.By.xpath(fieldRate1+this.number+fieldRate2);}
|
||||
super.clearField(locator);
|
||||
super.fillWithWait(locator,this.tier.rate);
|
||||
}
|
||||
fillSupply()
|
||||
{
|
||||
let locator;
|
||||
if (this.number==0) {locator=fieldSupplyTier1;}
|
||||
else {locator=by.By.xpath(fieldSupply1+this.number+fieldSupply2);}
|
||||
super.clearField(locator);
|
||||
super.fillWithWait(locator,this.tier.supply);
|
||||
|
||||
}
|
||||
|
||||
setModify() {
|
||||
let locator;
|
||||
if (this.number == 0)
|
||||
if (this.tier.allowModify) {
|
||||
locator = checkboxModifyOnTier1;
|
||||
}
|
||||
else {
|
||||
locator = checkboxModifyOffTier1;
|
||||
}
|
||||
else {
|
||||
|
||||
if (this.tier.allowModify) {
|
||||
locator = by.By.xpath(checkboxModifyOn1 + this.number + checkboxModifyOn2);
|
||||
}
|
||||
else {
|
||||
locator = by.By.xpath(checkboxModifyOff1 + this.number + checkboxModifyOff2);
|
||||
}
|
||||
}
|
||||
super.clickWithWait(locator);
|
||||
|
||||
}
|
||||
fillStartTime()
|
||||
{
|
||||
let locator;
|
||||
if (this.number==0) {locator=fieldStartTimeTier1;}
|
||||
else {locator=by.By.xpath(fieldStartTime1+this.number+fieldStartTime2);}
|
||||
super.fillWithWait(locator,this.tier.startDate);
|
||||
const action=this.driver.actions();
|
||||
action.sendKeys(key.TAB).perform();
|
||||
super.fillWithWait(locator,this.tier.startTime);
|
||||
|
||||
//this.driver.findElement(locator).sendKeys(webdriver.Key.TAB);
|
||||
// super.fillWithWait(locator,"06:59PM");
|
||||
}
|
||||
fillEndTime()
|
||||
{
|
||||
let locator;
|
||||
|
||||
if (this.number==0) {locator=fieldEndTimeTier1;}
|
||||
else {locator=by.By.xpath(fieldEndTime1+this.number+fieldEndTime2);}
|
||||
super.fillWithWait(locator,this.tier.endDate);
|
||||
const action=this.driver.actions();
|
||||
action.sendKeys(key.TAB).perform();
|
||||
super.fillWithWait(locator,this.tier.endTime);
|
||||
}
|
||||
|
||||
fillWhitelist(){
|
||||
for (var i=0;i<this.tier.whitelist.length;i++) {
|
||||
this.fillAddress(this.tier.whitelist[i].address);
|
||||
this.fillMin(this.tier.whitelist[i].min);
|
||||
this.fillMax(this.tier.whitelist[i].max);
|
||||
this.clickButtonAdd();
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
fillAddress(address){
|
||||
let locator;
|
||||
if (this.number==0) {locator=fieldAddressTier1;}
|
||||
else {locator=by.By.xpath(fieldAddress1+this.number+fieldAddress2);}
|
||||
super.fillWithWait(locator,address);
|
||||
this.driver.sleep(500);
|
||||
|
||||
|
||||
}
|
||||
fillMin(value){
|
||||
let locator;
|
||||
if (this.number==0) {locator=fieldMinTier1;}
|
||||
else {locator=by.By.xpath(fieldMin1+this.number+fieldMin2);}
|
||||
super.fillWithWait(locator,value);
|
||||
}
|
||||
fillMax(value){
|
||||
|
||||
let locator;
|
||||
if (this.number==0) {locator=fieldMaxTier1;}
|
||||
else {locator=by.By.xpath(fieldMax1+this.number+fieldMax2);}
|
||||
super.fillWithWait(locator,value);
|
||||
}
|
||||
clickButtonAdd(){
|
||||
let locator;
|
||||
if (this.number==0) {locator=buttonAdd}
|
||||
else {locator=By.xpath(buttonAdd1+this.number+buttonAdd2);}
|
||||
|
||||
super.clickWithWait(locator);
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
module.exports.TierPage=TierPage;
|
|
@ -0,0 +1,27 @@
|
|||
|
||||
const page=require('./Page.js');
|
||||
const webdriver = require('selenium-webdriver'),
|
||||
chrome = require('selenium-webdriver/chrome'),
|
||||
firefox = require('selenium-webdriver/firefox'),
|
||||
by = require('selenium-webdriver/lib/by');
|
||||
const buttonContinue= by.By.xpath("//*[@id=\"root\"]/div/section/div[3]/a/span");
|
||||
|
||||
|
||||
class WizardStep1 extends page.Page{
|
||||
|
||||
constructor(driver){
|
||||
super(driver);
|
||||
this.URL;
|
||||
|
||||
}
|
||||
|
||||
clickButtonContinue(){
|
||||
super.clickWithWait(buttonContinue);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
module.exports.WizardStep1=WizardStep1;
|
|
@ -0,0 +1,43 @@
|
|||
const page=require('./Page.js');
|
||||
const webdriver = require('selenium-webdriver'),
|
||||
chrome = require('selenium-webdriver/chrome'),
|
||||
firefox = require('selenium-webdriver/firefox'),
|
||||
by = require('selenium-webdriver/lib/by');
|
||||
const By=by.By;
|
||||
|
||||
const fieldName=By.xpath("//*[@id=\"root\"]/div/section/div[2]/div[2]/div[1]/input");
|
||||
const fieldTicker=By.xpath("//*[@id=\"root\"]/div/section/div[2]/div[2]/div[2]/input");
|
||||
const fieldDecimals=By.xpath("//*[@id=\"root\"]/div/section/div[2]/div[2]/div[3]/input");
|
||||
const buttonContinue=By.xpath("//*[@id=\"root\"]/div/section/div[3]/a");
|
||||
|
||||
class WizardStep2 extends page.Page {
|
||||
|
||||
constructor(driver) {
|
||||
super(driver);
|
||||
this.URL;
|
||||
}
|
||||
|
||||
fillName(name){
|
||||
super.fillWithWait(fieldName,name);
|
||||
}
|
||||
fillTicker(name){
|
||||
super.fillWithWait(fieldTicker,name);
|
||||
}
|
||||
fillDecimals(name){
|
||||
super.fillWithWait(fieldDecimals,name);
|
||||
}
|
||||
|
||||
|
||||
clickDecimals(){
|
||||
super.clickWithWait(fieldDecimals);
|
||||
|
||||
}
|
||||
|
||||
|
||||
clickButtonContinue(){
|
||||
super.clickWithWait(buttonContinue);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
module.exports.WizardStep2=WizardStep2;
|
|
@ -0,0 +1,94 @@
|
|||
console.log(module.filename);
|
||||
const page=require('./Page.js');
|
||||
const webdriver = require('selenium-webdriver'),
|
||||
chrome = require('selenium-webdriver/chrome'),
|
||||
firefox = require('selenium-webdriver/firefox'),
|
||||
by = require('selenium-webdriver/lib/by');
|
||||
const By=by.By;
|
||||
|
||||
const fieldWalletAddress=By.xpath("//*[@id=\"root\"]/div/section/div[2]/div[2]/div[2]/div[1]/input");
|
||||
const fieldMinCap=By.xpath("//*[@id=\"root\"]/div/section/div[2]/div[2]/div[3]/div[1]/input");
|
||||
const boxGasPriceSafe=By.xpath("//*[@id=\"root\"]/div/section/div[2]/div[2]/div[2]/div[2]/div[1]/label/span");
|
||||
const boxGasPriceNormal=By.xpath("//*[@id=\"root\"]/div/section/div[2]/div[2]/div[2]/div[2]/div[2]/label/span");
|
||||
const boxGasPriceFast=By.xpath("//*[@id=\"root\"]/div/section/div[2]/div[2]/div[2]/div[2]/div[3]/label/span");
|
||||
const boxGasPriceCustom=By.xpath("//*[@id=\"root\"]/div/section/div[2]/div[2]/div[2]/div[2]/div[4]/label/span");
|
||||
const fieldGasPriceCustom=By.xpath("//*[@id=\"root\"]/div/section/div[2]/div[2]/div[2]/div[2]/input");
|
||||
const buttonContinue=By.xpath("//*[@id=\"root\"]/div/section/div[5]/div/a");
|
||||
const buttonAddTier=By.xpath("//*[@id=\"root\"]/div/section/div[5]/div/div");
|
||||
const boxWhitelistingYes=By.xpath("//*[@id=\"root\"]/div/section/div[2]/div[2]/div[3]/div[2]/div/label[1]/span");
|
||||
const boxWhitelistingNo=By.xpath("//*[@id=\"root\"]/div/section/div[2]/div[2]/div[3]/div[2]/div/label[2]/span");
|
||||
|
||||
class WizardStep3 extends page.Page{
|
||||
|
||||
constructor(driver){
|
||||
super(driver);
|
||||
this.URL;
|
||||
this.tier;
|
||||
|
||||
}
|
||||
|
||||
clickButtonContinue(){
|
||||
super.clickWithWait(buttonContinue);
|
||||
|
||||
}
|
||||
fillWalletAddress(address){
|
||||
super.clearField(fieldWalletAddress);
|
||||
super.fillWithWait(fieldWalletAddress,address);
|
||||
}
|
||||
|
||||
|
||||
clickCheckboxGasPriceSafe()
|
||||
{
|
||||
super.clickWithWait(boxGasPriceSafe);
|
||||
}
|
||||
clickCheckboxGasPriceNormal()
|
||||
{
|
||||
super.clickWithWait(boxGasPriceNormal);
|
||||
}
|
||||
clickCheckboxGasPriceFast()
|
||||
{
|
||||
super.clickWithWait(boxGasPriceFast);
|
||||
}
|
||||
clickCheckboxGasPriceCustom()
|
||||
{
|
||||
super.clickWithWait(boxGasPriceCustom);
|
||||
}
|
||||
fillGasPriceCustom(value){
|
||||
super.clearField(fieldGasPriceCustom);
|
||||
super.fillWithWait(fieldGasPriceCustom,value);
|
||||
}
|
||||
clickCheckboWhitelistYes()
|
||||
{
|
||||
super.clickWithWait(boxWhitelistingYes);
|
||||
}
|
||||
clickCheckboWhitelistNo()
|
||||
{
|
||||
super.clickWithWait(boxWhitelistingNo);
|
||||
}
|
||||
|
||||
clickButtonAddTier()
|
||||
{
|
||||
|
||||
super.clickWithWait(buttonAddTier);
|
||||
}
|
||||
|
||||
setGasPrice(value){
|
||||
switch(value){
|
||||
case 2:{this.clickCheckboxGasPriceSafe();break;}
|
||||
case 4:{this.clickCheckboxGasPriceNormal();break;}
|
||||
case 30:{this.clickCheckboxGasPriceFast();break;}
|
||||
default:{
|
||||
this.clickCheckboxGasPriceCustom();
|
||||
this.fillGasPriceCustom(value);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fillMinCap(value){
|
||||
super.clearField(fieldMinCap);
|
||||
super.fillWithWait(fieldMinCap,value);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
module.exports.WizardStep3=WizardStep3;
|
|
@ -0,0 +1,48 @@
|
|||
|
||||
const page=require('./Page.js');
|
||||
const webdriver = require('selenium-webdriver'),
|
||||
chrome = require('selenium-webdriver/chrome'),
|
||||
firefox = require('selenium-webdriver/firefox'),
|
||||
by = require('selenium-webdriver/lib/by');
|
||||
const By=by.By;
|
||||
|
||||
const buttonContinue=By.xpath("//*[@id=\"root\"]/div/section/div[3]/a");
|
||||
const buttonDownload=By.xpath("//*[@id=\"root\"]/div/section/div[3]/div");
|
||||
const blueScreen=By.xpath('//*[@id="root"]/div/section/div[4]/div[2]/div');
|
||||
const modal=By.xpath("//*[@id=\"root\"]/div/section/div[4]/div/p");
|
||||
const buttonOK=By.xpath('/html/body/div[2]/div/div[3]/button[1]');
|
||||
|
||||
|
||||
class WizardStep4 extends page.Page{
|
||||
|
||||
constructor(driver){
|
||||
super(driver);
|
||||
this.URL;
|
||||
|
||||
|
||||
}
|
||||
async isPage(){
|
||||
return await super.isElementPresent(modal);
|
||||
}
|
||||
clickButtonContinue(){
|
||||
super.clickWithWait(buttonContinue);
|
||||
|
||||
}
|
||||
clickButtonDownload(){
|
||||
super.clickWithWait(buttonDownload);
|
||||
|
||||
}
|
||||
clickButtonOk(){
|
||||
super.clickWithWait(buttonOK);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
module.exports={
|
||||
WizardStep4:WizardStep4,
|
||||
blueScreen:blueScreen,
|
||||
buttonContinue:buttonContinue
|
||||
}
|
|
@ -0,0 +1,44 @@
|
|||
|
||||
const page=require('./Page.js');
|
||||
const webdriver = require('selenium-webdriver'),
|
||||
chrome = require('selenium-webdriver/chrome'),
|
||||
firefox = require('selenium-webdriver/firefox'),
|
||||
by = require('selenium-webdriver/lib/by');
|
||||
|
||||
const buttonNewCrowdsale=by.By.css("#root > div > div:nth-child(2) > section > div.crowdsale > div > div > a > span");
|
||||
const buttonChooseContract=by.By.xpath("//*[@id=\"root\"]/div/div[1]/section/div[1]/div/div/div");
|
||||
|
||||
class WizardWelcome extends page.Page{
|
||||
|
||||
constructor(driver,URL){
|
||||
super(driver);
|
||||
this.URL=URL;
|
||||
|
||||
}
|
||||
|
||||
open()
|
||||
{
|
||||
this.driver.get(this.URL);
|
||||
|
||||
}
|
||||
|
||||
clickButtonNewCrowdsale(){
|
||||
super.clickWithWait(buttonNewCrowdsale);
|
||||
|
||||
|
||||
|
||||
}
|
||||
clickButtonChooseContract(){
|
||||
super.clickWithWait(buttonChooseContract);
|
||||
}
|
||||
|
||||
open()
|
||||
{
|
||||
this.driver.get(this.URL);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
module.exports.WizardWelcome=WizardWelcome;
|
|
@ -0,0 +1,231 @@
|
|||
{ "account": "0xF16AB2EA0a7F7B28C267cbA3Ed211Ea5c6e27411",
|
||||
"privateKey": "03c06a9fab22fe0add145e337c5a8251e140f74468d72eab17ec7419ab812cd0",
|
||||
"networkID":4,
|
||||
|
||||
"name": "T10RyWyMy_02/10/18 1am",
|
||||
"ticker": "MSC",
|
||||
"decimals": 3,
|
||||
"reservedTokens":[
|
||||
{
|
||||
|
||||
},
|
||||
{
|
||||
}],
|
||||
"walletAddress":"0xF16AB2EA0a7F7B28C267cbA3Ed211Ea5c6e27411",
|
||||
"gasprice": 40,
|
||||
"mincap": 1,
|
||||
"whitelisting":true,
|
||||
"tiers":[
|
||||
{
|
||||
"name":"###1",
|
||||
"allowModify": true,
|
||||
"startDate": "02/10/2018",
|
||||
"startTime": "02:40pm",
|
||||
"endDate":"02/10/2018",
|
||||
"endTime":"02:50pm",
|
||||
"rate":100,
|
||||
"supply": 200,
|
||||
"whitelist":[
|
||||
{
|
||||
"address":"0x40cAa4BF6893dF91638305cFCf98CB8E7Fa8D17F",
|
||||
"min":0,
|
||||
"max":20
|
||||
},
|
||||
{
|
||||
"address":"0x42f0143F2E9Ab64CA3811bbA08E40D798C18E7f4",
|
||||
"min":8,
|
||||
"max":55
|
||||
}]
|
||||
},
|
||||
{
|
||||
"name":"###2",
|
||||
"allowModify": true,
|
||||
"startDate": "02/10/2018",
|
||||
"startTime": "03:40pm",
|
||||
"endDate":"02/10/2018",
|
||||
"endTime":"03:50pm",
|
||||
"rate":100,
|
||||
"supply": 200,
|
||||
"whitelist":[
|
||||
{
|
||||
"address":"0x40cAa4BF6893dF91638305cFCf98CB8E7Fa8D17F",
|
||||
"min":0,
|
||||
"max":20
|
||||
},
|
||||
{
|
||||
"address":"0x42f0143F2E9Ab64CA3811bbA08E40D798C18E7f4",
|
||||
"min":8,
|
||||
"max":55
|
||||
}]
|
||||
},
|
||||
{
|
||||
"name":"###3",
|
||||
"allowModify": true,
|
||||
"startDate": "02/10/2018",
|
||||
"startTime": "04:40pm",
|
||||
"endDate":"02/10/2018",
|
||||
"endTime":"04:50pm",
|
||||
"rate":100,
|
||||
"supply": 200,
|
||||
"whitelist":[
|
||||
{
|
||||
"address":"0x40cAa4BF6893dF91638305cFCf98CB8E7Fa8D17F",
|
||||
"min":0,
|
||||
"max":20
|
||||
},
|
||||
{
|
||||
"address":"0x42f0143F2E9Ab64CA3811bbA08E40D798C18E7f4",
|
||||
"min":8,
|
||||
"max":55
|
||||
}]
|
||||
},
|
||||
{
|
||||
"name":"###4",
|
||||
"allowModify": true,
|
||||
"startDate": "02/10/2018",
|
||||
"startTime": "05:40pm",
|
||||
"endDate":"02/10/2018",
|
||||
"endTime":"05:50pm",
|
||||
"rate":100,
|
||||
"supply": 200,
|
||||
"whitelist":[
|
||||
{
|
||||
"address":"0x40cAa4BF6893dF91638305cFCf98CB8E7Fa8D17F",
|
||||
"min":0,
|
||||
"max":20
|
||||
},
|
||||
{
|
||||
"address":"0x42f0143F2E9Ab64CA3811bbA08E40D798C18E7f4",
|
||||
"min":8,
|
||||
"max":55
|
||||
}]
|
||||
},
|
||||
{
|
||||
"name":"###5",
|
||||
"allowModify": true,
|
||||
"startDate": "02/10/2018",
|
||||
"startTime": "06:40pm",
|
||||
"endDate":"02/10/2018",
|
||||
"endTime":"06:50pm",
|
||||
"rate":100,
|
||||
"supply": 200,
|
||||
"whitelist":[
|
||||
{
|
||||
"address":"0x40cAa4BF6893dF91638305cFCf98CB8E7Fa8D17F",
|
||||
"min":0,
|
||||
"max":20
|
||||
},
|
||||
{
|
||||
"address":"0x42f0143F2E9Ab64CA3811bbA08E40D798C18E7f4",
|
||||
"min":8,
|
||||
"max":55
|
||||
}]
|
||||
},
|
||||
{
|
||||
"name":"###6",
|
||||
"allowModify": true,
|
||||
"startDate": "02/10/2018",
|
||||
"startTime": "07:51pm",
|
||||
"endDate":"02/10/2018",
|
||||
"endTime":"07:59pm",
|
||||
"rate":100,
|
||||
"supply": 200,
|
||||
"whitelist":[
|
||||
{
|
||||
"address":"0x40cAa4BF6893dF91638305cFCf98CB8E7Fa8D17F",
|
||||
"min":0,
|
||||
"max":20
|
||||
},
|
||||
{
|
||||
"address":"0x42f0143F2E9Ab64CA3811bbA08E40D798C18E7f4",
|
||||
"min":8,
|
||||
"max":55
|
||||
}]
|
||||
},
|
||||
{
|
||||
"name":"###7",
|
||||
"allowModify": true,
|
||||
"startDate": "02/10/2018",
|
||||
"startTime": "08:51pm",
|
||||
"endDate":"02/10/2018",
|
||||
"endTime":"08:59pm",
|
||||
"rate":100,
|
||||
"supply": 200,
|
||||
"whitelist":[
|
||||
{
|
||||
"address":"0x40cAa4BF6893dF91638305cFCf98CB8E7Fa8D17F",
|
||||
"min":0,
|
||||
"max":20
|
||||
},
|
||||
{
|
||||
"address":"0x42f0143F2E9Ab64CA3811bbA08E40D798C18E7f4",
|
||||
"min":8,
|
||||
"max":55
|
||||
}]
|
||||
},
|
||||
{
|
||||
"name":"###8",
|
||||
"allowModify": true,
|
||||
"startDate": "02/10/2018",
|
||||
"startTime": "09:51pm",
|
||||
"endDate":"02/10/2018",
|
||||
"endTime":"09:59pm",
|
||||
"rate":100,
|
||||
"supply": 200,
|
||||
"whitelist":[
|
||||
{
|
||||
"address":"0x40cAa4BF6893dF91638305cFCf98CB8E7Fa8D17F",
|
||||
"min":0,
|
||||
"max":20
|
||||
},
|
||||
{
|
||||
"address":"0x42f0143F2E9Ab64CA3811bbA08E40D798C18E7f4",
|
||||
"min":8,
|
||||
"max":55
|
||||
}]
|
||||
},
|
||||
{
|
||||
"name":"###9",
|
||||
"allowModify": true,
|
||||
"startDate": "02/10/2018",
|
||||
"startTime": "10:45pm",
|
||||
"endDate":"02/10/2018",
|
||||
"endTime":"10:59pm",
|
||||
"rate":100,
|
||||
"supply": 200,
|
||||
"whitelist":[
|
||||
{
|
||||
"address":"0x40cAa4BF6893dF91638305cFCf98CB8E7Fa8D17F",
|
||||
"min":0,
|
||||
"max":20
|
||||
},
|
||||
{
|
||||
"address":"0x42f0143F2E9Ab64CA3811bbA08E40D798C18E7f4",
|
||||
"min":8,
|
||||
"max":55
|
||||
}]
|
||||
},
|
||||
{
|
||||
"name":"###10",
|
||||
"allowModify": true,
|
||||
"startDate": "02/10/2018",
|
||||
"startTime": "11:51pm",
|
||||
"endDate":"02/10/2018",
|
||||
"endTime":"11:59pm",
|
||||
"rate":100,
|
||||
"supply": 200,
|
||||
"whitelist":[
|
||||
{
|
||||
"address":"0x40cAa4BF6893dF91638305cFCf98CB8E7Fa8D17F",
|
||||
"min":0,
|
||||
"max":20
|
||||
},
|
||||
{
|
||||
"address":"0x42f0143F2E9Ab64CA3811bbA08E40D798C18E7f4",
|
||||
"min":8,
|
||||
"max":55
|
||||
}]
|
||||
}
|
||||
]
|
||||
|
||||
}
|
|
@ -0,0 +1,43 @@
|
|||
{ "account": "0xF16AB2EA0a7F7B28C267cbA3Ed211Ea5c6e27411",
|
||||
"privateKey": "03c06a9fab22fe0add145e337c5a8251e140f74468d72eab17ec7419ab812cd0",
|
||||
"networkID":4,
|
||||
|
||||
"name": "T1RnWn_0005.json",
|
||||
"ticker": "test",
|
||||
"decimals": 3,
|
||||
"reservedTokens":[
|
||||
{
|
||||
|
||||
},
|
||||
{
|
||||
|
||||
}],
|
||||
"walletAddress":"0xF16AB2EA0a7F7B28C267cbA3Ed211Ea5c6e27411",
|
||||
"gasprice": 40,
|
||||
"mincap": 1,
|
||||
"whitelisting":false,
|
||||
"tiers":[
|
||||
{
|
||||
"name":"###1",
|
||||
"allowModify": true,
|
||||
"startDate": "02/10/2018",
|
||||
"startTime": "03:15pm",
|
||||
"endDate":"02/10/2018",
|
||||
"endTime":"03:30pm",
|
||||
"rate":100,
|
||||
"supply": 200,
|
||||
"whitelist":[
|
||||
{
|
||||
"address":"0x40cAa4BF6893dF91638305cFCf98CB8E7Fa8D17F",
|
||||
"min":10,
|
||||
"max":100
|
||||
},
|
||||
{
|
||||
"address":"0x42f0143F2E9Ab64CA3811bbA08E40D798C18E7f4",
|
||||
"min":8,
|
||||
"max":55
|
||||
}]
|
||||
}]
|
||||
|
||||
|
||||
}
|
|
@ -0,0 +1,38 @@
|
|||
{ "account": "0xF16AB2EA0a7F7B28C267cbA3Ed211Ea5c6e27411",
|
||||
"privateKey": "03c06a9fab22fe0add145e337c5a8251e140f74468d72eab17ec7419ab812cd0",
|
||||
"networkID":4,
|
||||
|
||||
"name": "T1RnWy.json",
|
||||
"ticker": "test",
|
||||
"decimals": 3,
|
||||
"reservedTokens":[
|
||||
{
|
||||
|
||||
},
|
||||
{
|
||||
|
||||
}],
|
||||
"walletAddress":"0xF16AB2EA0a7F7B28C267cbA3Ed211Ea5c6e27411",
|
||||
"gasprice": 40,
|
||||
"mincap": 1,
|
||||
"whitelisting":true,
|
||||
"tiers":[
|
||||
{
|
||||
"name":"###1",
|
||||
"allowModify": true,
|
||||
"startDate": "02/15/2018",
|
||||
"startTime": "04:15pm",
|
||||
"endDate":"02/15/2018",
|
||||
"endTime":"04:30pm",
|
||||
"rate":100,
|
||||
"supply": 20,
|
||||
"whitelist":[
|
||||
{
|
||||
"address":"0x40cAa4BF6893dF91638305cFCf98CB8E7Fa8D17F",
|
||||
"min":0,
|
||||
"max":20
|
||||
}]
|
||||
}]
|
||||
|
||||
|
||||
}
|
|
@ -0,0 +1,44 @@
|
|||
|
||||
{ "account": "0xF16AB2EA0a7F7B28C267cbA3Ed211Ea5c6e27411",
|
||||
"privateKey": "03c06a9fab22fe0add145e337c5a8251e140f74468d72eab17ec7419ab812cd0",
|
||||
"networkID":4,
|
||||
|
||||
"name": "T1RnWy_0003.json",
|
||||
"ticker": "test",
|
||||
"decimals": 2,
|
||||
"reservedTokens":[
|
||||
{
|
||||
|
||||
},
|
||||
{
|
||||
|
||||
}],
|
||||
"walletAddress":"0xF16AB2EA0a7F7B28C267cbA3Ed211Ea5c6e27411",
|
||||
"gasprice": 40,
|
||||
"mincap": 1,
|
||||
"whitelisting":true,
|
||||
"tiers":[
|
||||
{
|
||||
"name":"###1",
|
||||
"allowModify": false,
|
||||
"startDate": "02/10/2018",
|
||||
"startTime": "11:50am",
|
||||
"endDate":"02/10/2018",
|
||||
"endTime":"11:59am",
|
||||
"rate":100,
|
||||
"supply": 150,
|
||||
"whitelist":[
|
||||
{
|
||||
"address":"0x40cAa4BF6893dF91638305cFCf98CB8E7Fa8D17F",
|
||||
"min":0,
|
||||
"max":100
|
||||
},
|
||||
{
|
||||
"address":"0x41B4073E966c169dB22185805A951A0f1b805320",
|
||||
"min":0,
|
||||
"max":100
|
||||
}
|
||||
]
|
||||
}]
|
||||
|
||||
}
|
|
@ -0,0 +1,43 @@
|
|||
{ "account": "0xF16AB2EA0a7F7B28C267cbA3Ed211Ea5c6e27411",
|
||||
"privateKey": "03c06a9fab22fe0add145e337c5a8251e140f74468d72eab17ec7419ab812cd0",
|
||||
"networkID":4,
|
||||
|
||||
"name": "T1RnWnMy_0015.json",
|
||||
"ticker": "t0015",
|
||||
"decimals": 2,
|
||||
"reservedTokens":[
|
||||
{
|
||||
|
||||
},
|
||||
{
|
||||
|
||||
}],
|
||||
"walletAddress":"0xF16AB2EA0a7F7B28C267cbA3Ed211Ea5c6e27411",
|
||||
"gasprice": 40,
|
||||
"mincap": 1,
|
||||
"whitelisting":false,
|
||||
"tiers":[
|
||||
{
|
||||
"name":"###1",
|
||||
"allowModify": true,
|
||||
"startDate": "02/13/2018",
|
||||
"startTime": "11:30pm",
|
||||
"endDate":"02/13/2018",
|
||||
"endTime":"11:50pm",
|
||||
"rate":100,
|
||||
"supply": 20,
|
||||
"whitelist":[
|
||||
{
|
||||
"address":"0x40cAa4BF6893dF91638305cFCf98CB8E7Fa8D17F",
|
||||
"min":10,
|
||||
"max":100
|
||||
},
|
||||
{
|
||||
"address":"0x42f0143F2E9Ab64CA3811bbA08E40D798C18E7f4",
|
||||
"min":8,
|
||||
"max":55
|
||||
}]
|
||||
}]
|
||||
|
||||
|
||||
}
|
|
@ -0,0 +1,46 @@
|
|||
{ "account": "0xF16AB2EA0a7F7B28C267cbA3Ed211Ea5c6e27411",
|
||||
"privateKey": "03c06a9fab22fe0add145e337c5a8251e140f74468d72eab17ec7419ab812cd0",
|
||||
"networkID":4,
|
||||
|
||||
"name": "T1RyWn_0007.json",
|
||||
"ticker": "test",
|
||||
"decimals": 3,
|
||||
"reservedTokens":[
|
||||
{
|
||||
"address" :"0x27F2f56e6Ee35E4995A965337ba2A7b4ec492FcC",
|
||||
"dimension": "percentage",
|
||||
"value": 20
|
||||
},
|
||||
{
|
||||
"address" :"0x40cAa4BF6893dF91638305cFCf98CB8E7Fa8D17F",
|
||||
"dimension": "tokens",
|
||||
"value": 100
|
||||
}],
|
||||
"walletAddress":"0xF16AB2EA0a7F7B28C267cbA3Ed211Ea5c6e27411",
|
||||
"gasprice": 40,
|
||||
"mincap": 1,
|
||||
"whitelisting":false,
|
||||
"tiers":[
|
||||
{
|
||||
"name":"###1",
|
||||
"allowModify": true,
|
||||
"startDate": "02/12/2018",
|
||||
"startTime": "11:40am",
|
||||
"endDate":"02/12/2018",
|
||||
"endTime":"11:55am",
|
||||
"rate":100,
|
||||
"supply": 200,
|
||||
"whitelist":[
|
||||
{
|
||||
"address":"0x6f53002497203d167771eb0852b4c1caDA7a585f",
|
||||
"min":6,
|
||||
"max":100
|
||||
},
|
||||
{
|
||||
"address":"0x42f0143F2E9Ab64CA3811bbA08E40D798C18E7f4",
|
||||
"min":8,
|
||||
"max":55
|
||||
}]
|
||||
}]
|
||||
|
||||
}
|
|
@ -0,0 +1,53 @@
|
|||
{ "account": "0xF16AB2EA0a7F7B28C267cbA3Ed211Ea5c6e27411",
|
||||
"privateKey": "03c06a9fab22fe0add145e337c5a8251e140f74468d72eab17ec7419ab812cd0",
|
||||
"networkID":4,
|
||||
|
||||
"name": "T1RyWn_0008.json",
|
||||
"ticker": "t0008",
|
||||
"decimals": 3,
|
||||
"reservedTokens":[
|
||||
|
||||
|
||||
{
|
||||
"address" :"0xF16AB2EA0a7F7B28C267cbA3Ed211Ea5c6e27411",
|
||||
"dimension": "tokens",
|
||||
"value": 99.9999
|
||||
},
|
||||
{
|
||||
"address" :"0xF16AB2EA0a7F7B28C267cbA3Ed211Ea5c6e27411",
|
||||
"dimension": "tokens",
|
||||
"value": 99.9999
|
||||
},
|
||||
|
||||
|
||||
|
||||
|
||||
],
|
||||
"walletAddress":"0xF16AB2EA0a7F7B28C267cbA3Ed211Ea5c6e27411",
|
||||
"gasprice": 40,
|
||||
"mincap": 1,
|
||||
"whitelisting":false,
|
||||
"tiers":[
|
||||
{
|
||||
"name":"###1",
|
||||
"allowModify": true,
|
||||
"startDate": "02/12/2018",
|
||||
"startTime": "05:59pm",
|
||||
"endDate":"02/12/2018",
|
||||
"endTime":"06:59pm",
|
||||
"rate":100,
|
||||
"supply": 20,
|
||||
"whitelist":[
|
||||
{
|
||||
"address":"0x6f53002497203d167771eb0852b4c1caDA7a585f",
|
||||
"min":6,
|
||||
"max":100
|
||||
},
|
||||
{
|
||||
"address":"0x42f0143F2E9Ab64CA3811bbA08E40D798C18E7f4",
|
||||
"min":8,
|
||||
"max":55
|
||||
}]
|
||||
}]
|
||||
|
||||
}
|
|
@ -0,0 +1,51 @@
|
|||
{ "account": "0xF16AB2EA0a7F7B28C267cbA3Ed211Ea5c6e27411",
|
||||
"privateKey": "03c06a9fab22fe0add145e337c5a8251e140f74468d72eab17ec7419ab812cd0",
|
||||
"networkID":4,
|
||||
|
||||
"name": "T1RyWn_0009.json",
|
||||
"ticker": "t0009",
|
||||
"decimals": 3,
|
||||
"reservedTokens":[
|
||||
{
|
||||
"address" :"0x27F2f56e6Ee35E4995A965337ba2A7b4ec492FcC",
|
||||
"dimension": "percentage",
|
||||
"value": 100
|
||||
},
|
||||
{
|
||||
"address" :"0x41B4073E966c169dB22185805A951A0f1b805320",
|
||||
"dimension": "tokens",
|
||||
"value": 100
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
],
|
||||
"walletAddress":"0xF16AB2EA0a7F7B28C267cbA3Ed211Ea5c6e27411",
|
||||
"gasprice": 40,
|
||||
"mincap": 1,
|
||||
"whitelisting":false,
|
||||
"tiers":[
|
||||
{
|
||||
"name":"###1",
|
||||
"allowModify": true,
|
||||
"startDate": "02/12/2018",
|
||||
"startTime": "08:04pm",
|
||||
"endDate":"02/12/2018",
|
||||
"endTime":"08:20pm",
|
||||
"rate":100,
|
||||
"supply": 20,
|
||||
"whitelist":[
|
||||
{
|
||||
"address":"0x6f53002497203d167771eb0852b4c1caDA7a585f",
|
||||
"min":6,
|
||||
"max":100
|
||||
},
|
||||
{
|
||||
"address":"0x42f0143F2E9Ab64CA3811bbA08E40D798C18E7f4",
|
||||
"min":8,
|
||||
"max":55
|
||||
}]
|
||||
}]
|
||||
|
||||
}
|
|
@ -0,0 +1,60 @@
|
|||
{ "account": "0xF16AB2EA0a7F7B28C267cbA3Ed211Ea5c6e27411",
|
||||
"privateKey": "03c06a9fab22fe0add145e337c5a8251e140f74468d72eab17ec7419ab812cd0",
|
||||
"networkID":4,
|
||||
|
||||
"name": "T1RyWn_0010.json",
|
||||
"ticker": "t0010",
|
||||
"decimals": 3,
|
||||
"reservedTokens":[
|
||||
{
|
||||
"address" :"0x27F2f56e6Ee35E4995A965337ba2A7b4ec492FcC",
|
||||
"dimension": "percentage",
|
||||
"value": 0
|
||||
},
|
||||
{
|
||||
"address" :"0x41B4073E966c169dB22185805A951A0f1b805320",
|
||||
"dimension": "tokens",
|
||||
"value": 0
|
||||
},
|
||||
{
|
||||
"address" :"0x40cAa4BF6893dF91638305cFCf98CB8E7Fa8D17F",
|
||||
"dimension": "tokens",
|
||||
"value": 1000000000
|
||||
},
|
||||
{
|
||||
"address" :"0x56B2e3C3cFf7f3921Dc2e0F8B8e20d1eEc29216b",
|
||||
"dimension": "percentage",
|
||||
"value": 1000000000
|
||||
}
|
||||
|
||||
|
||||
|
||||
],
|
||||
"walletAddress":"0xF16AB2EA0a7F7B28C267cbA3Ed211Ea5c6e27411",
|
||||
"gasprice": 40,
|
||||
"mincap": 1,
|
||||
"whitelisting":false,
|
||||
"tiers":[
|
||||
{
|
||||
"name":"###1",
|
||||
"allowModify": true,
|
||||
"startDate": "02/12/2018",
|
||||
"startTime": "3:05pm",
|
||||
"endDate":"02/12/2018",
|
||||
"endTime":"3:59pm",
|
||||
"rate":100,
|
||||
"supply": 200,
|
||||
"whitelist":[
|
||||
{
|
||||
"address":"0x6f53002497203d167771eb0852b4c1caDA7a585f",
|
||||
"min":6,
|
||||
"max":100
|
||||
},
|
||||
{
|
||||
"address":"0x42f0143F2E9Ab64CA3811bbA08E40D798C18E7f4",
|
||||
"min":8,
|
||||
"max":55
|
||||
}]
|
||||
}]
|
||||
|
||||
}
|
|
@ -0,0 +1,52 @@
|
|||
{ "account": "0xF16AB2EA0a7F7B28C267cbA3Ed211Ea5c6e27411",
|
||||
"privateKey": "03c06a9fab22fe0add145e337c5a8251e140f74468d72eab17ec7419ab812cd0",
|
||||
"networkID":4,
|
||||
|
||||
"name": "T1RyWn_0011.json",
|
||||
"ticker": "t0011",
|
||||
"decimals": 3,
|
||||
"reservedTokens":[
|
||||
|
||||
{
|
||||
"address" :"0xF16AB2EA0a7F7B28C267cbA3Ed211Ea5c6e27411",
|
||||
"dimension": "percentage",
|
||||
"value": 34.6
|
||||
},
|
||||
{
|
||||
"address" :"0xF16AB2EA0a7F7B28C267cbA3Ed211Ea5c6e27411",
|
||||
"dimension": "tokens",
|
||||
"value": 99.999
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
],
|
||||
"walletAddress":"0xF16AB2EA0a7F7B28C267cbA3Ed211Ea5c6e27411",
|
||||
"gasprice": 40,
|
||||
"mincap": 1,
|
||||
"whitelisting":false,
|
||||
"tiers":[
|
||||
{
|
||||
"name":"###1",
|
||||
"allowModify": true,
|
||||
"startDate": "02/12/2018",
|
||||
"startTime": "04:30pm",
|
||||
"endDate":"02/12/2018",
|
||||
"endTime":"04:35pm",
|
||||
"rate":100,
|
||||
"supply": 100,
|
||||
"whitelist":[
|
||||
{
|
||||
"address":"0x6f53002497203d167771eb0852b4c1caDA7a585f",
|
||||
"min":6,
|
||||
"max":100
|
||||
},
|
||||
{
|
||||
"address":"0x42f0143F2E9Ab64CA3811bbA08E40D798C18E7f4",
|
||||
"min":8,
|
||||
"max":55
|
||||
}]
|
||||
}]
|
||||
|
||||
}
|
|
@ -0,0 +1,529 @@
|
|||
{
|
||||
"account": "0xF16AB2EA0a7F7B28C267cbA3Ed211Ea5c6e27411",
|
||||
"privateKey": "03c06a9fab22fe0add145e337c5a8251e140f74468d72eab17ec7419ab812cd0",
|
||||
"networkID":4,
|
||||
|
||||
"name": "T1RyWn_0012.json",
|
||||
"ticker": "t0012",
|
||||
"decimals": 3,
|
||||
"reservedTokens":[
|
||||
|
||||
{
|
||||
"address" :"0xF16AB2EA0a7F7B28C267cbA3Ed211Ea5c6e27411",
|
||||
"dimension": "percentage",
|
||||
"value": 1
|
||||
},
|
||||
{
|
||||
"address" :"0xF16AB2EA0a7F7B28C267cbA3Ed211Ea5c6e27411",
|
||||
"dimension": "tokens",
|
||||
"value": 2
|
||||
},
|
||||
{
|
||||
"address" :"0x40cAa4BF6893dF91638305cFCf98CB8E7Fa8D17F",
|
||||
"dimension": "percentage",
|
||||
"value": 3
|
||||
},
|
||||
{
|
||||
"address" :"0x40cAa4BF6893dF91638305cFCf98CB8E7Fa8D17F",
|
||||
"dimension": "tokens",
|
||||
"value": 4
|
||||
},
|
||||
{
|
||||
"address" :"0x41B4073E966c169dB22185805A951A0f1b805320",
|
||||
"dimension": "percentage",
|
||||
"value": 5
|
||||
},
|
||||
{
|
||||
"address" :"0x41B4073E966c169dB22185805A951A0f1b805320",
|
||||
"dimension": "tokens",
|
||||
"value": 6
|
||||
},
|
||||
{
|
||||
"address" :"0x56B2e3C3cFf7f3921Dc2e0F8B8e20d1eEc29216b",
|
||||
"dimension": "percentage",
|
||||
"value":7
|
||||
},
|
||||
{
|
||||
"address" :"0x27F2f56e6Ee35E4995A965337ba2A7b4ec492FcC",
|
||||
"dimension": "tokens",
|
||||
"value": 8
|
||||
},
|
||||
{
|
||||
"address" :"0xd13c7924241E51Eb013003490736e6169a15786a",
|
||||
"dimension": "percentage",
|
||||
"value": 9
|
||||
},
|
||||
{
|
||||
"address" :"0xBC4023Baef7B812c23f21bc0b108A188243b07Cb",
|
||||
"dimension": "tokens",
|
||||
"value": 10
|
||||
}, {
|
||||
"address" :"0x2589bd7D8A58Ac9A4aC01d68A7c63315ef184c63",
|
||||
"dimension": "percentage",
|
||||
"value": 11
|
||||
},
|
||||
{
|
||||
"address" :"0xF3eA35DB8F0058b4e0aD45F883172E92fdCb4B82",
|
||||
"dimension": "tokens",
|
||||
"value": 12
|
||||
}, {
|
||||
"address" :"0xb3b4F4b5568BB6dF78e4d96Ad30A5538C913D495",
|
||||
"dimension": "percentage",
|
||||
"value": 13
|
||||
},
|
||||
{
|
||||
"address" :"0x16926399BAF474Cd314E6425ace67A88EA5BeA11",
|
||||
"dimension": "tokens",
|
||||
"value": 14
|
||||
}, {
|
||||
"address" :"0xE98055678d8e8724E5106b059e88557a99561007",
|
||||
"dimension": "percentage",
|
||||
"value": 15
|
||||
},
|
||||
{
|
||||
"address" :"0x06554522da78D90015a12C5caaf96be2999ea3F9",
|
||||
"dimension": "tokens",
|
||||
"value": 16
|
||||
}, {
|
||||
"address" :"0x5537F8335625adB9f95Dfa6E7AfE3A2AF600084B",
|
||||
"dimension": "percentage",
|
||||
"value": 17
|
||||
},
|
||||
{
|
||||
"address" :"0x1894F11ddf864CA1de4eB339512a79e199cbf194",
|
||||
"dimension": "tokens",
|
||||
"value": 18
|
||||
}, {
|
||||
"address" :"0xeec3B3A65E3157b19605911615218B33772d5da2",
|
||||
"dimension": "percentage",
|
||||
"value": 19
|
||||
},
|
||||
{
|
||||
"address" :"0xec8Af49612F4EdfcD069B8cfe95552740c6849e0",
|
||||
"dimension": "tokens",
|
||||
"value": 20
|
||||
}, {
|
||||
"address" :"0x9613130348aC610732A391063CD70b5a8c186EfC",
|
||||
"dimension": "percentage",
|
||||
"value": 21
|
||||
},
|
||||
{
|
||||
"address" :"0x7Bc397b1F42bB521cEadE2509f8deAF477C7BEd6",
|
||||
"dimension": "tokens",
|
||||
"value": 22
|
||||
}, {
|
||||
"address" :"0x8632cc8620f7aA794aC1a3b88e0D07E4BF133638",
|
||||
"dimension": "percentage",
|
||||
"value": 23
|
||||
},
|
||||
{
|
||||
"address" :"0xd540257890329448fB721B6A1bB562Bb95BA0eb7",
|
||||
"dimension": "tokens",
|
||||
"value": 24
|
||||
}, {
|
||||
"address" :"0x8e4aD05Ae00C76a371B3Ab96AD739401ec63BCDA",
|
||||
"dimension": "percentage",
|
||||
"value": 25
|
||||
},
|
||||
{
|
||||
"address" :"0xd3E49136aBdAda1EeD2df2ed7c7D530c1b54afcD",
|
||||
"dimension": "tokens",
|
||||
"value": 26
|
||||
},
|
||||
{
|
||||
"address" :"0xF16AB2EA0a7F7B28C267cbA3Ed211Ea5c6e27411",
|
||||
"dimension": "percentage",
|
||||
"value": 1
|
||||
},
|
||||
{
|
||||
"address" :"0xF16AB2EA0a7F7B28C267cbA3Ed211Ea5c6e27411",
|
||||
"dimension": "tokens",
|
||||
"value": 2
|
||||
},
|
||||
{
|
||||
"address" :"0x40cAa4BF6893dF91638305cFCf98CB8E7Fa8D17F",
|
||||
"dimension": "percentage",
|
||||
"value": 3
|
||||
},
|
||||
{
|
||||
"address" :"0x40cAa4BF6893dF91638305cFCf98CB8E7Fa8D17F",
|
||||
"dimension": "tokens",
|
||||
"value": 4
|
||||
},
|
||||
{
|
||||
"address" :"0x41B4073E966c169dB22185805A951A0f1b805320",
|
||||
"dimension": "percentage",
|
||||
"value": 5
|
||||
},
|
||||
{
|
||||
"address" :"0x41B4073E966c169dB22185805A951A0f1b805320",
|
||||
"dimension": "tokens",
|
||||
"value": 6
|
||||
},
|
||||
{
|
||||
"address" :"0x56B2e3C3cFf7f3921Dc2e0F8B8e20d1eEc29216b",
|
||||
"dimension": "percentage",
|
||||
"value":7
|
||||
},
|
||||
{
|
||||
"address" :"0x27F2f56e6Ee35E4995A965337ba2A7b4ec492FcC",
|
||||
"dimension": "tokens",
|
||||
"value": 8
|
||||
},
|
||||
{
|
||||
"address" :"0xd13c7924241E51Eb013003490736e6169a15786a",
|
||||
"dimension": "percentage",
|
||||
"value": 9
|
||||
},
|
||||
{
|
||||
"address" :"0xBC4023Baef7B812c23f21bc0b108A188243b07Cb",
|
||||
"dimension": "tokens",
|
||||
"value": 10
|
||||
}, {
|
||||
"address" :"0x2589bd7D8A58Ac9A4aC01d68A7c63315ef184c63",
|
||||
"dimension": "percentage",
|
||||
"value": 11
|
||||
},
|
||||
{
|
||||
"address" :"0xF3eA35DB8F0058b4e0aD45F883172E92fdCb4B82",
|
||||
"dimension": "tokens",
|
||||
"value": 12
|
||||
}, {
|
||||
"address" :"0xb3b4F4b5568BB6dF78e4d96Ad30A5538C913D495",
|
||||
"dimension": "percentage",
|
||||
"value": 13
|
||||
},
|
||||
{
|
||||
"address" :"0x16926399BAF474Cd314E6425ace67A88EA5BeA11",
|
||||
"dimension": "tokens",
|
||||
"value": 14
|
||||
}, {
|
||||
"address" :"0xE98055678d8e8724E5106b059e88557a99561007",
|
||||
"dimension": "percentage",
|
||||
"value": 15
|
||||
},
|
||||
{
|
||||
"address" :"0x06554522da78D90015a12C5caaf96be2999ea3F9",
|
||||
"dimension": "tokens",
|
||||
"value": 16
|
||||
}, {
|
||||
"address" :"0x5537F8335625adB9f95Dfa6E7AfE3A2AF600084B",
|
||||
"dimension": "percentage",
|
||||
"value": 17
|
||||
},
|
||||
{
|
||||
"address" :"0x1894F11ddf864CA1de4eB339512a79e199cbf194",
|
||||
"dimension": "tokens",
|
||||
"value": 18
|
||||
}, {
|
||||
"address" :"0xeec3B3A65E3157b19605911615218B33772d5da2",
|
||||
"dimension": "percentage",
|
||||
"value": 19
|
||||
},
|
||||
{
|
||||
"address" :"0xec8Af49612F4EdfcD069B8cfe95552740c6849e0",
|
||||
"dimension": "tokens",
|
||||
"value": 20
|
||||
}, {
|
||||
"address" :"0x9613130348aC610732A391063CD70b5a8c186EfC",
|
||||
"dimension": "percentage",
|
||||
"value": 21
|
||||
},
|
||||
{
|
||||
"address" :"0x7Bc397b1F42bB521cEadE2509f8deAF477C7BEd6",
|
||||
"dimension": "tokens",
|
||||
"value": 22
|
||||
}, {
|
||||
"address" :"0x8632cc8620f7aA794aC1a3b88e0D07E4BF133638",
|
||||
"dimension": "percentage",
|
||||
"value": 23
|
||||
},
|
||||
{
|
||||
"address" :"0xd540257890329448fB721B6A1bB562Bb95BA0eb7",
|
||||
"dimension": "tokens",
|
||||
"value": 24
|
||||
}, {
|
||||
"address" :"0x8e4aD05Ae00C76a371B3Ab96AD739401ec63BCDA",
|
||||
"dimension": "percentage",
|
||||
"value": 25
|
||||
},
|
||||
{
|
||||
"address" :"0xd3E49136aBdAda1EeD2df2ed7c7D530c1b54afcD",
|
||||
"dimension": "tokens",
|
||||
"value": 26
|
||||
},
|
||||
{
|
||||
"address" :"0xF16AB2EA0a7F7B28C267cbA3Ed211Ea5c6e27411",
|
||||
"dimension": "percentage",
|
||||
"value": 1
|
||||
},
|
||||
{
|
||||
"address" :"0xF16AB2EA0a7F7B28C267cbA3Ed211Ea5c6e27411",
|
||||
"dimension": "tokens",
|
||||
"value": 2
|
||||
},
|
||||
{
|
||||
"address" :"0x40cAa4BF6893dF91638305cFCf98CB8E7Fa8D17F",
|
||||
"dimension": "percentage",
|
||||
"value": 3
|
||||
},
|
||||
{
|
||||
"address" :"0x40cAa4BF6893dF91638305cFCf98CB8E7Fa8D17F",
|
||||
"dimension": "tokens",
|
||||
"value": 4
|
||||
},
|
||||
{
|
||||
"address" :"0x41B4073E966c169dB22185805A951A0f1b805320",
|
||||
"dimension": "percentage",
|
||||
"value": 5
|
||||
},
|
||||
{
|
||||
"address" :"0x41B4073E966c169dB22185805A951A0f1b805320",
|
||||
"dimension": "tokens",
|
||||
"value": 6
|
||||
},
|
||||
{
|
||||
"address" :"0x56B2e3C3cFf7f3921Dc2e0F8B8e20d1eEc29216b",
|
||||
"dimension": "percentage",
|
||||
"value":7
|
||||
},
|
||||
{
|
||||
"address" :"0x27F2f56e6Ee35E4995A965337ba2A7b4ec492FcC",
|
||||
"dimension": "tokens",
|
||||
"value": 8
|
||||
},
|
||||
{
|
||||
"address" :"0xd13c7924241E51Eb013003490736e6169a15786a",
|
||||
"dimension": "percentage",
|
||||
"value": 9
|
||||
},
|
||||
{
|
||||
"address" :"0xBC4023Baef7B812c23f21bc0b108A188243b07Cb",
|
||||
"dimension": "tokens",
|
||||
"value": 10
|
||||
}, {
|
||||
"address" :"0x2589bd7D8A58Ac9A4aC01d68A7c63315ef184c63",
|
||||
"dimension": "percentage",
|
||||
"value": 11
|
||||
},
|
||||
{
|
||||
"address" :"0xF3eA35DB8F0058b4e0aD45F883172E92fdCb4B82",
|
||||
"dimension": "tokens",
|
||||
"value": 12
|
||||
}, {
|
||||
"address" :"0xb3b4F4b5568BB6dF78e4d96Ad30A5538C913D495",
|
||||
"dimension": "percentage",
|
||||
"value": 13
|
||||
},
|
||||
{
|
||||
"address" :"0x16926399BAF474Cd314E6425ace67A88EA5BeA11",
|
||||
"dimension": "tokens",
|
||||
"value": 14
|
||||
}, {
|
||||
"address" :"0xE98055678d8e8724E5106b059e88557a99561007",
|
||||
"dimension": "percentage",
|
||||
"value": 15
|
||||
},
|
||||
{
|
||||
"address" :"0x06554522da78D90015a12C5caaf96be2999ea3F9",
|
||||
"dimension": "tokens",
|
||||
"value": 16
|
||||
}, {
|
||||
"address" :"0x5537F8335625adB9f95Dfa6E7AfE3A2AF600084B",
|
||||
"dimension": "percentage",
|
||||
"value": 17
|
||||
},
|
||||
{
|
||||
"address" :"0x1894F11ddf864CA1de4eB339512a79e199cbf194",
|
||||
"dimension": "tokens",
|
||||
"value": 18
|
||||
}, {
|
||||
"address" :"0xeec3B3A65E3157b19605911615218B33772d5da2",
|
||||
"dimension": "percentage",
|
||||
"value": 19
|
||||
},
|
||||
{
|
||||
"address" :"0xec8Af49612F4EdfcD069B8cfe95552740c6849e0",
|
||||
"dimension": "tokens",
|
||||
"value": 20
|
||||
}, {
|
||||
"address" :"0x9613130348aC610732A391063CD70b5a8c186EfC",
|
||||
"dimension": "percentage",
|
||||
"value": 21
|
||||
},
|
||||
{
|
||||
"address" :"0x7Bc397b1F42bB521cEadE2509f8deAF477C7BEd6",
|
||||
"dimension": "tokens",
|
||||
"value": 22
|
||||
}, {
|
||||
"address" :"0x8632cc8620f7aA794aC1a3b88e0D07E4BF133638",
|
||||
"dimension": "percentage",
|
||||
"value": 23
|
||||
},
|
||||
{
|
||||
"address" :"0xd540257890329448fB721B6A1bB562Bb95BA0eb7",
|
||||
"dimension": "tokens",
|
||||
"value": 24
|
||||
}, {
|
||||
"address" :"0x8e4aD05Ae00C76a371B3Ab96AD739401ec63BCDA",
|
||||
"dimension": "percentage",
|
||||
"value": 25
|
||||
},
|
||||
{
|
||||
"address" :"0xd3E49136aBdAda1EeD2df2ed7c7D530c1b54afcD",
|
||||
"dimension": "tokens",
|
||||
"value": 26
|
||||
},
|
||||
{
|
||||
"address" :"0xF16AB2EA0a7F7B28C267cbA3Ed211Ea5c6e27411",
|
||||
"dimension": "percentage",
|
||||
"value": 1
|
||||
},
|
||||
{
|
||||
"address" :"0xF16AB2EA0a7F7B28C267cbA3Ed211Ea5c6e27411",
|
||||
"dimension": "tokens",
|
||||
"value": 2
|
||||
},
|
||||
{
|
||||
"address" :"0x40cAa4BF6893dF91638305cFCf98CB8E7Fa8D17F",
|
||||
"dimension": "percentage",
|
||||
"value": 3
|
||||
},
|
||||
{
|
||||
"address" :"0x40cAa4BF6893dF91638305cFCf98CB8E7Fa8D17F",
|
||||
"dimension": "tokens",
|
||||
"value": 4
|
||||
},
|
||||
{
|
||||
"address" :"0x41B4073E966c169dB22185805A951A0f1b805320",
|
||||
"dimension": "percentage",
|
||||
"value": 5
|
||||
},
|
||||
{
|
||||
"address" :"0x41B4073E966c169dB22185805A951A0f1b805320",
|
||||
"dimension": "tokens",
|
||||
"value": 6
|
||||
},
|
||||
{
|
||||
"address" :"0x56B2e3C3cFf7f3921Dc2e0F8B8e20d1eEc29216b",
|
||||
"dimension": "percentage",
|
||||
"value":7
|
||||
},
|
||||
{
|
||||
"address" :"0x27F2f56e6Ee35E4995A965337ba2A7b4ec492FcC",
|
||||
"dimension": "tokens",
|
||||
"value": 8
|
||||
},
|
||||
{
|
||||
"address" :"0xd13c7924241E51Eb013003490736e6169a15786a",
|
||||
"dimension": "percentage",
|
||||
"value": 9
|
||||
},
|
||||
{
|
||||
"address" :"0xBC4023Baef7B812c23f21bc0b108A188243b07Cb",
|
||||
"dimension": "tokens",
|
||||
"value": 10
|
||||
}, {
|
||||
"address" :"0x2589bd7D8A58Ac9A4aC01d68A7c63315ef184c63",
|
||||
"dimension": "percentage",
|
||||
"value": 11
|
||||
},
|
||||
{
|
||||
"address" :"0xF3eA35DB8F0058b4e0aD45F883172E92fdCb4B82",
|
||||
"dimension": "tokens",
|
||||
"value": 12
|
||||
}, {
|
||||
"address" :"0xb3b4F4b5568BB6dF78e4d96Ad30A5538C913D495",
|
||||
"dimension": "percentage",
|
||||
"value": 13
|
||||
},
|
||||
{
|
||||
"address" :"0x16926399BAF474Cd314E6425ace67A88EA5BeA11",
|
||||
"dimension": "tokens",
|
||||
"value": 14
|
||||
}, {
|
||||
"address" :"0xE98055678d8e8724E5106b059e88557a99561007",
|
||||
"dimension": "percentage",
|
||||
"value": 15
|
||||
},
|
||||
{
|
||||
"address" :"0x06554522da78D90015a12C5caaf96be2999ea3F9",
|
||||
"dimension": "tokens",
|
||||
"value": 16
|
||||
}, {
|
||||
"address" :"0x5537F8335625adB9f95Dfa6E7AfE3A2AF600084B",
|
||||
"dimension": "percentage",
|
||||
"value": 17
|
||||
},
|
||||
{
|
||||
"address" :"0x1894F11ddf864CA1de4eB339512a79e199cbf194",
|
||||
"dimension": "tokens",
|
||||
"value": 18
|
||||
}, {
|
||||
"address" :"0xeec3B3A65E3157b19605911615218B33772d5da2",
|
||||
"dimension": "percentage",
|
||||
"value": 19
|
||||
},
|
||||
{
|
||||
"address" :"0xec8Af49612F4EdfcD069B8cfe95552740c6849e0",
|
||||
"dimension": "tokens",
|
||||
"value": 20
|
||||
}, {
|
||||
"address" :"0x9613130348aC610732A391063CD70b5a8c186EfC",
|
||||
"dimension": "percentage",
|
||||
"value": 21
|
||||
},
|
||||
{
|
||||
"address" :"0x7Bc397b1F42bB521cEadE2509f8deAF477C7BEd6",
|
||||
"dimension": "tokens",
|
||||
"value": 22
|
||||
}, {
|
||||
"address" :"0x8632cc8620f7aA794aC1a3b88e0D07E4BF133638",
|
||||
"dimension": "percentage",
|
||||
"value": 23
|
||||
},
|
||||
{
|
||||
"address" :"0xd540257890329448fB721B6A1bB562Bb95BA0eb7",
|
||||
"dimension": "tokens",
|
||||
"value": 24
|
||||
}, {
|
||||
"address" :"0x8e4aD05Ae00C76a371B3Ab96AD739401ec63BCDA",
|
||||
"dimension": "percentage",
|
||||
"value": 25
|
||||
},
|
||||
{
|
||||
"address" :"0xd3E49136aBdAda1EeD2df2ed7c7D530c1b54afcD",
|
||||
"dimension": "tokens",
|
||||
"value": 26
|
||||
}
|
||||
|
||||
|
||||
],
|
||||
"walletAddress":"0xF16AB2EA0a7F7B28C267cbA3Ed211Ea5c6e27411",
|
||||
"gasprice": 40,
|
||||
"mincap": 1,
|
||||
"whitelisting":false,
|
||||
"tiers":[
|
||||
{
|
||||
"name":"###1",
|
||||
"allowModify": true,
|
||||
"startDate": "02/12/2018",
|
||||
"startTime": "07:30pm",
|
||||
"endDate":"02/12/2018",
|
||||
"endTime":"08:35pm",
|
||||
"rate":100,
|
||||
"supply": 100,
|
||||
"whitelist":[
|
||||
{
|
||||
"address":"0x6f53002497203d167771eb0852b4c1caDA7a585f",
|
||||
"min":6,
|
||||
"max":100
|
||||
},
|
||||
{
|
||||
"address":"0x42f0143F2E9Ab64CA3811bbA08E40D798C18E7f4",
|
||||
"min":8,
|
||||
"max":55
|
||||
}]
|
||||
}]
|
||||
|
||||
}
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,51 @@
|
|||
{ "account": "0xF16AB2EA0a7F7B28C267cbA3Ed211Ea5c6e27411",
|
||||
"privateKey": "03c06a9fab22fe0add145e337c5a8251e140f74468d72eab17ec7419ab812cd0",
|
||||
"networkID":4,
|
||||
|
||||
"name": "T1RyWy_0013.json",
|
||||
"ticker": "t0013",
|
||||
"decimals": 3,
|
||||
"reservedTokens":[
|
||||
{
|
||||
"address" :"0x27F2f56e6Ee35E4995A965337ba2A7b4ec492FcC",
|
||||
"dimension": "percentage",
|
||||
"value": 60
|
||||
},
|
||||
{
|
||||
"address" :"0x41B4073E966c169dB22185805A951A0f1b805320",
|
||||
"dimension": "tokens",
|
||||
"value": 2000
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
],
|
||||
"walletAddress":"0xF16AB2EA0a7F7B28C267cbA3Ed211Ea5c6e27411",
|
||||
"gasprice": 40,
|
||||
"mincap": 1,
|
||||
"whitelisting":true,
|
||||
"tiers":[
|
||||
{
|
||||
"name":"###1",
|
||||
"allowModify": true,
|
||||
"startDate": "02/12/2018",
|
||||
"startTime": "07:30pm",
|
||||
"endDate":"02/12/2018",
|
||||
"endTime":"07:40pm",
|
||||
"rate":1000,
|
||||
"supply": 1000,
|
||||
"whitelist":[
|
||||
{
|
||||
"address":"0x27F2f56e6Ee35E4995A965337ba2A7b4ec492FcC",
|
||||
"min":6,
|
||||
"max":100
|
||||
},
|
||||
{
|
||||
"address":"0x41B4073E966c169dB22185805A951A0f1b805320",
|
||||
"min":8,
|
||||
"max":55
|
||||
}]
|
||||
}]
|
||||
|
||||
}
|
|
@ -0,0 +1,55 @@
|
|||
|
||||
{ "account": "0xF16AB2EA0a7F7B28C267cbA3Ed211Ea5c6e27411",
|
||||
"privateKey": "03c06a9fab22fe0add145e337c5a8251e140f74468d72eab17ec7419ab812cd0",
|
||||
"networkID":4,
|
||||
|
||||
"name": "T2RnWyMy_0016.json",
|
||||
"ticker": "t0016",
|
||||
"decimals": 2,
|
||||
"reservedTokens":[
|
||||
{
|
||||
|
||||
},
|
||||
{
|
||||
|
||||
}],
|
||||
"walletAddress":"0xF16AB2EA0a7F7B28C267cbA3Ed211Ea5c6e27411",
|
||||
"gasprice": 40,
|
||||
"mincap": 1,
|
||||
"whitelisting":true,
|
||||
"tiers":[
|
||||
{
|
||||
"name":"###1",
|
||||
"allowModify": true,
|
||||
"startDate": "02/13/2018",
|
||||
"startTime": "11:49am",
|
||||
"endDate":"02/13/2018",
|
||||
"endTime":"11:55pm",
|
||||
"rate":100,
|
||||
"supply": 150,
|
||||
"whitelist":[
|
||||
{
|
||||
"address":"0x40cAa4BF6893dF91638305cFCf98CB8E7Fa8D17F",
|
||||
"min":0,
|
||||
"max":100
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name":"###2",
|
||||
"allowModify": true,
|
||||
"startDate": "02/13/2018",
|
||||
"startTime": "11:56pm",
|
||||
"endDate":"02/13/2018",
|
||||
"endTime":"11:57pm",
|
||||
"rate":100,
|
||||
"supply": 150,
|
||||
"whitelist":[
|
||||
{
|
||||
"address":"0x41B4073E966c169dB22185805A951A0f1b805320",
|
||||
"min":0,
|
||||
"max":100
|
||||
}]
|
||||
}]
|
||||
|
||||
}
|
|
@ -0,0 +1,54 @@
|
|||
{ "account": "0xF16AB2EA0a7F7B28C267cbA3Ed211Ea5c6e27411",
|
||||
"privateKey": "03c06a9fab22fe0add145e337c5a8251e140f74468d72eab17ec7419ab812cd0",
|
||||
"networkID":4,
|
||||
|
||||
"name": "T2RnWy 02/10/18",
|
||||
"ticker": "test",
|
||||
"decimals": 3,
|
||||
"reservedTokens":[
|
||||
{
|
||||
|
||||
},
|
||||
{
|
||||
|
||||
}],
|
||||
"walletAddress":"0xF16AB2EA0a7F7B28C267cbA3Ed211Ea5c6e27411",
|
||||
"gasprice": 40,
|
||||
"mincap": 1,
|
||||
"whitelisting":true,
|
||||
"tiers":[
|
||||
{
|
||||
"name":"###1",
|
||||
"allowModify": true,
|
||||
"startDate": "02/10/2018",
|
||||
"startTime": "11:00am",
|
||||
"endDate":"02/10/2018",
|
||||
"endTime":"11:10am",
|
||||
"rate":100,
|
||||
"supply": 200,
|
||||
"whitelist":[
|
||||
{
|
||||
"address":"0x40cAa4BF6893dF91638305cFCf98CB8E7Fa8D17F",
|
||||
"min":9,
|
||||
"max":90
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name":"###2",
|
||||
"allowModify": true,
|
||||
"startDate": "02/10/2018",
|
||||
"startTime": "11:15am",
|
||||
"endDate":"02/10/2018",
|
||||
"endTime":"11:25pm",
|
||||
"rate":100,
|
||||
"supply": 100,
|
||||
"whitelist":[
|
||||
{
|
||||
"address":"0x41B4073E966c169dB22185805A951A0f1b805320",
|
||||
"min":6,
|
||||
"max":100
|
||||
}]
|
||||
}]
|
||||
|
||||
}
|
|
@ -0,0 +1,55 @@
|
|||
|
||||
{ "account": "0xF16AB2EA0a7F7B28C267cbA3Ed211Ea5c6e27411",
|
||||
"privateKey": "03c06a9fab22fe0add145e337c5a8251e140f74468d72eab17ec7419ab812cd0",
|
||||
"networkID":4,
|
||||
|
||||
"name": "T2RnWy_0001.json",
|
||||
"ticker": "test",
|
||||
"decimals": 2,
|
||||
"reservedTokens":[
|
||||
{
|
||||
|
||||
},
|
||||
{
|
||||
|
||||
}],
|
||||
"walletAddress":"0xF16AB2EA0a7F7B28C267cbA3Ed211Ea5c6e27411",
|
||||
"gasprice": 40,
|
||||
"mincap": 1,
|
||||
"whitelisting":true,
|
||||
"tiers":[
|
||||
{
|
||||
"name":"###1",
|
||||
"allowModify": true,
|
||||
"startDate": "02/10/2018",
|
||||
"startTime": "11:45am",
|
||||
"endDate":"02/10/2018",
|
||||
"endTime":"11:55am",
|
||||
"rate":100,
|
||||
"supply": 150,
|
||||
"whitelist":[
|
||||
{
|
||||
"address":"0x40cAa4BF6893dF91638305cFCf98CB8E7Fa8D17F",
|
||||
"min":0,
|
||||
"max":100
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name":"###2",
|
||||
"allowModify": true,
|
||||
"startDate": "02/10/2018",
|
||||
"startTime": "11:56am",
|
||||
"endDate":"02/10/2018",
|
||||
"endTime":"12:10pm",
|
||||
"rate":100,
|
||||
"supply": 150,
|
||||
"whitelist":[
|
||||
{
|
||||
"address":"0x41B4073E966c169dB22185805A951A0f1b805320",
|
||||
"min":0,
|
||||
"max":100
|
||||
}]
|
||||
}]
|
||||
|
||||
}
|
|
@ -0,0 +1,67 @@
|
|||
{ "account": "0xF16AB2EA0a7F7B28C267cbA3Ed211Ea5c6e27411",
|
||||
"privateKey": "03c06a9fab22fe0add145e337c5a8251e140f74468d72eab17ec7419ab812cd0",
|
||||
"networkID":4,
|
||||
|
||||
"name": "T2RyWy",
|
||||
"ticker": "MSCqj",
|
||||
"decimals": 3,
|
||||
"reservedTokens":[
|
||||
{
|
||||
"address" :"0x6f53002497203d167771eb0852b4c1caDA7a585f",
|
||||
"dimension": "percentage",
|
||||
"value": 20
|
||||
},
|
||||
{
|
||||
"address" :"0x42f0143F2E9Ab64CA3811bbA08E40D798C18E7f4",
|
||||
"dimension": "tokens",
|
||||
"value": 10
|
||||
}],
|
||||
"walletAddress":"0xF16AB2EA0a7F7B28C267cbA3Ed211Ea5c6e27411",
|
||||
"gasprice": 40,
|
||||
"mincap": 1,
|
||||
"whitelisting":false,
|
||||
"tiers":[
|
||||
{
|
||||
"name":"###1",
|
||||
"allowModify": true,
|
||||
"startDate": "02/08/2018",
|
||||
"startTime": "11:15pm",
|
||||
"endDate":"02/08/2018",
|
||||
"endTime":"11:45pm",
|
||||
"rate":100,
|
||||
"supply": 200,
|
||||
"whitelist":[
|
||||
{
|
||||
"address":"0x6f53002497203d167771eb0852b4c1caDA7a585f",
|
||||
"min":6,
|
||||
"max":100
|
||||
},
|
||||
{
|
||||
"address":"0x42f0143F2E9Ab64CA3811bbA08E40D798C18E7f4",
|
||||
"min":8,
|
||||
"max":55
|
||||
}]
|
||||
},
|
||||
{
|
||||
"name":"###2",
|
||||
"allowModify": true,
|
||||
"startDate": "02/09/2018",
|
||||
"startTime": "11:15pm",
|
||||
"endDate":"02/09/2018",
|
||||
"endTime":"11:45pm",
|
||||
"rate":100,
|
||||
"supply": 200,
|
||||
"whitelist":[
|
||||
{
|
||||
"address":"0x6f53002497203d167771eb0852b4c1caDA7a585f",
|
||||
"min":6,
|
||||
"max":100
|
||||
},
|
||||
{
|
||||
"address":"0x42f0143F2E9Ab64CA3811bbA08E40D798C18E7f4",
|
||||
"min":8,
|
||||
"max":55
|
||||
}]
|
||||
}]
|
||||
|
||||
}
|
|
@ -0,0 +1,55 @@
|
|||
{
|
||||
"account": "0xF16AB2EA0a7F7B28C267cbA3Ed211Ea5c6e27411",
|
||||
"privateKey": "03c06a9fab22fe0add145e337c5a8251e140f74468d72eab17ec7419ab812cd0",
|
||||
"networkID":4,
|
||||
|
||||
"name": "T3RnWn",
|
||||
"ticker": "MSC",
|
||||
"decimals": 3,
|
||||
"reservedTokens":[
|
||||
{
|
||||
|
||||
},
|
||||
{
|
||||
}],
|
||||
"walletAddress":"0xF16AB2EA0a7F7B28C267cbA3Ed211Ea5c6e27411",
|
||||
"gasprice": 40,
|
||||
"mincap": 1,
|
||||
"whitelisting":false,
|
||||
"tiers":[
|
||||
{
|
||||
"name":"###1",
|
||||
"allowModify": true,
|
||||
"startDate": "02/08/2018",
|
||||
"startTime": "11:45pm",
|
||||
"endDate":"02/08/2018",
|
||||
"endTime":"11:55pm",
|
||||
"rate":100,
|
||||
"supply": 200
|
||||
|
||||
},
|
||||
{
|
||||
"name":"###2",
|
||||
"allowModify": true,
|
||||
"startDate": "02/09/2018",
|
||||
"startTime": "00:15am",
|
||||
"endDate":"02/09/2018",
|
||||
"endTime":"00:30am",
|
||||
"rate":100,
|
||||
"supply": 400
|
||||
|
||||
},
|
||||
{
|
||||
"name":"###3",
|
||||
"allowModify": true,
|
||||
"startDate": "02/09/2018",
|
||||
"startTime": "00:45am",
|
||||
"endDate":"02/09/2018",
|
||||
"endTime":"00:55am",
|
||||
"rate":100,
|
||||
"supply": 600
|
||||
|
||||
}
|
||||
]
|
||||
|
||||
}
|
|
@ -0,0 +1,147 @@
|
|||
{ "account": "0xF16AB2EA0a7F7B28C267cbA3Ed211Ea5c6e27411",
|
||||
"privateKey": "03c06a9fab22fe0add145e337c5a8251e140f74468d72eab17ec7419ab812cd0",
|
||||
"networkID":4,
|
||||
|
||||
"name": "T6RnWy_02/09/18 7:05pm",
|
||||
"ticker": "MSC",
|
||||
"decimals": 3,
|
||||
"reservedTokens":[
|
||||
{
|
||||
|
||||
},
|
||||
{
|
||||
}],
|
||||
"walletAddress":"0xF16AB2EA0a7F7B28C267cbA3Ed211Ea5c6e27411",
|
||||
"gasprice": 40,
|
||||
"mincap": 1,
|
||||
"whitelisting":true,
|
||||
"tiers":[
|
||||
{
|
||||
"name":"###1",
|
||||
"allowModify": true,
|
||||
"startDate": "02/11/2018",
|
||||
"startTime": "7:40pm",
|
||||
"endDate":"02/11/2018",
|
||||
"endTime":"7:50pm",
|
||||
"rate":100,
|
||||
"supply": 200,
|
||||
"whitelist":[
|
||||
{
|
||||
"address":"0x40cAa4BF6893dF91638305cFCf98CB8E7Fa8D17F",
|
||||
"min":0,
|
||||
"max":20
|
||||
},
|
||||
{
|
||||
"address":"0x42f0143F2E9Ab64CA3811bbA08E40D798C18E7f4",
|
||||
"min":8,
|
||||
"max":55
|
||||
}]
|
||||
},
|
||||
{
|
||||
"name":"###2",
|
||||
"allowModify": true,
|
||||
"startDate": "02/10/2018",
|
||||
"startTime": "8:40pm",
|
||||
"endDate":"02/10/2018",
|
||||
"endTime":"8:50pm",
|
||||
"rate":100,
|
||||
"supply": 200,
|
||||
"whitelist":[
|
||||
{
|
||||
"address":"0x40cAa4BF6893dF91638305cFCf98CB8E7Fa8D17F",
|
||||
"min":0,
|
||||
"max":20
|
||||
},
|
||||
{
|
||||
"address":"0x42f0143F2E9Ab64CA3811bbA08E40D798C18E7f4",
|
||||
"min":8,
|
||||
"max":55
|
||||
}]
|
||||
},
|
||||
{
|
||||
"name":"###3",
|
||||
"allowModify": true,
|
||||
"startDate": "02/10/2018",
|
||||
"startTime": "9:40pm",
|
||||
"endDate":"02/10/2018",
|
||||
"endTime":"9:50pm",
|
||||
"rate":100,
|
||||
"supply": 200,
|
||||
"whitelist":[
|
||||
{
|
||||
"address":"0x40cAa4BF6893dF91638305cFCf98CB8E7Fa8D17F",
|
||||
"min":0,
|
||||
"max":20
|
||||
},
|
||||
{
|
||||
"address":"0x42f0143F2E9Ab64CA3811bbA08E40D798C18E7f4",
|
||||
"min":8,
|
||||
"max":55
|
||||
}]
|
||||
},
|
||||
{
|
||||
"name":"###4",
|
||||
"allowModify": true,
|
||||
"startDate": "02/10/2018",
|
||||
"startTime": "10:40pm",
|
||||
"endDate":"02/10/2018",
|
||||
"endTime":"10:50pm",
|
||||
"rate":100,
|
||||
"supply": 200,
|
||||
"whitelist":[
|
||||
{
|
||||
"address":"0x40cAa4BF6893dF91638305cFCf98CB8E7Fa8D17F",
|
||||
"min":0,
|
||||
"max":20
|
||||
},
|
||||
{
|
||||
"address":"0x42f0143F2E9Ab64CA3811bbA08E40D798C18E7f4",
|
||||
"min":8,
|
||||
"max":55
|
||||
}]
|
||||
},
|
||||
{
|
||||
"name":"###5",
|
||||
"allowModify": true,
|
||||
"startDate": "02/10/2018",
|
||||
"startTime": "11:40pm",
|
||||
"endDate":"02/10/2018",
|
||||
"endTime":"11:50pm",
|
||||
"rate":100,
|
||||
"supply": 200,
|
||||
"whitelist":[
|
||||
{
|
||||
"address":"0x40cAa4BF6893dF91638305cFCf98CB8E7Fa8D17F",
|
||||
"min":0,
|
||||
"max":20
|
||||
},
|
||||
{
|
||||
"address":"0x42f0143F2E9Ab64CA3811bbA08E40D798C18E7f4",
|
||||
"min":8,
|
||||
"max":55
|
||||
}]
|
||||
},
|
||||
{
|
||||
"name":"###6",
|
||||
"allowModify": true,
|
||||
"startDate": "02/10/2018",
|
||||
"startTime": "11:51pm",
|
||||
"endDate":"02/10/2018",
|
||||
"endTime":"11:59pm",
|
||||
"rate":100,
|
||||
"supply": 200,
|
||||
"whitelist":[
|
||||
{
|
||||
"address":"0x40cAa4BF6893dF91638305cFCf98CB8E7Fa8D17F",
|
||||
"min":0,
|
||||
"max":20
|
||||
},
|
||||
{
|
||||
"address":"0x42f0143F2E9Ab64CA3811bbA08E40D798C18E7f4",
|
||||
"min":8,
|
||||
"max":55
|
||||
}]
|
||||
}
|
||||
]
|
||||
|
||||
}
|
|
@ -0,0 +1,101 @@
|
|||
{ "account": "0xF16AB2EA0a7F7B28C267cbA3Ed211Ea5c6e27411",
|
||||
"privateKey": "03c06a9fab22fe0add145e337c5a8251e140f74468d72eab17ec7419ab812cd0",
|
||||
"networkID":4,
|
||||
|
||||
"name": "T6RnWy_0004.json",
|
||||
"ticker": "MSC",
|
||||
"decimals": 6,
|
||||
"reservedTokens":[
|
||||
{
|
||||
|
||||
},
|
||||
{
|
||||
}],
|
||||
"walletAddress":"0xF16AB2EA0a7F7B28C267cbA3Ed211Ea5c6e27411",
|
||||
"gasprice": 40,
|
||||
"mincap": 1,
|
||||
"whitelisting":true,
|
||||
"tiers":[
|
||||
{
|
||||
"name":"###1",
|
||||
"allowModify": false,
|
||||
"startDate": "02/10/2018",
|
||||
"startTime": "01:15pm",
|
||||
"endDate":"02/10/2018",
|
||||
"endTime":"01:35pm",
|
||||
"rate":100,
|
||||
"supply": 200,
|
||||
"whitelist":[
|
||||
{
|
||||
"address":"0x40cAa4BF6893dF91638305cFCf98CB8E7Fa8D17F",
|
||||
"min":0,
|
||||
"max":100
|
||||
}]
|
||||
},
|
||||
{
|
||||
"name":"###2",
|
||||
"allowModify": false,
|
||||
"startDate": "02/10/2018",
|
||||
"startTime": "01:40pm",
|
||||
"endDate":"02/10/2018",
|
||||
"endTime":"01:50pm",
|
||||
"rate":100,
|
||||
"supply": 200,
|
||||
"whitelist":[
|
||||
{
|
||||
"address":"0x41B4073E966c169dB22185805A951A0f1b805320",
|
||||
"min":10,
|
||||
"max":200
|
||||
}]
|
||||
},
|
||||
{
|
||||
"name":"###3",
|
||||
"allowModify": false,
|
||||
"startDate": "02/10/2018",
|
||||
"startTime": "01:55pm",
|
||||
"endDate":"02/10/2018",
|
||||
"endTime":"01:59pm",
|
||||
"rate":100,
|
||||
"supply": 200,
|
||||
"whitelist":[
|
||||
]
|
||||
},
|
||||
{
|
||||
"name":"###4",
|
||||
"allowModify": false,
|
||||
"startDate": "02/10/2018",
|
||||
"startTime": "02:05pm",
|
||||
"endDate":"02/10/2018",
|
||||
"endTime":"02:09pm",
|
||||
"rate":100,
|
||||
"supply": 200,
|
||||
"whitelist":[
|
||||
]
|
||||
},
|
||||
{
|
||||
"name":"###5",
|
||||
"allowModify": false,
|
||||
"startDate": "02/10/2018",
|
||||
"startTime": "02:10pm",
|
||||
"endDate":"02/10/2018",
|
||||
"endTime":"02:14pm",
|
||||
"rate":100,
|
||||
"supply": 200,
|
||||
"whitelist":[
|
||||
]
|
||||
},
|
||||
{
|
||||
"name":"###6",
|
||||
"allowModify": false,
|
||||
"startDate": "02/10/2018",
|
||||
"startTime": "02:15pm",
|
||||
"endDate":"02/10/2018",
|
||||
"endTime":"02:19pm",
|
||||
"rate":100,
|
||||
"supply": 200,
|
||||
"whitelist":[
|
||||
]
|
||||
}
|
||||
]
|
||||
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
"address":"0x40cAa4BF6893dF91638305cFCf98CB8E7Fa8D17F",
|
||||
"address":"0x41B4073E966c169dB22185805A951A0f1b805320",
|
||||
"address":"0x56B2e3C3cFf7f3921Dc2e0F8B8e20d1eEc29216b",
|
||||
"address":"0xF16AB2EA0a7F7B28C267cbA3Ed211Ea5c6e27411"
|
||||
|
||||
}
|
|
@ -0,0 +1,20 @@
|
|||
console.log(module.filename);
|
||||
const webdriver = require('selenium-webdriver'),
|
||||
chrome = require('selenium-webdriver/chrome'),
|
||||
firefox = require('selenium-webdriver/firefox'),
|
||||
by = require('selenium-webdriver/lib/by');
|
||||
|
||||
class BaseTest{
|
||||
|
||||
constructor(driver){
|
||||
this.driver=driver;
|
||||
}
|
||||
|
||||
run(){
|
||||
console.log('SuperTestBase')
|
||||
};
|
||||
|
||||
|
||||
|
||||
}
|
||||
module.exports.BaseTest=BaseTest;
|
|
@ -0,0 +1,40 @@
|
|||
//const Web3 = require('web3');
|
||||
const webdriver = require('selenium-webdriver'),
|
||||
chrome = require('selenium-webdriver/chrome'),
|
||||
firefox = require('selenium-webdriver/firefox'),
|
||||
by = require('selenium-webdriver/lib/by');
|
||||
const By=by.By;
|
||||
const baseTest=require('./BaseTest.js');
|
||||
const BaseTest=baseTest.BaseTest;
|
||||
const owner=require('../entity/Owner.js');
|
||||
const Owner=owner.Owner;
|
||||
const metaMask=require('../pages/MetaMask.js');
|
||||
const MetaMask=metaMask.MetaMask;
|
||||
const metaMaskWallet=require('../entity/MetaMaskWallet.js');
|
||||
const MetaMaskWallet=metaMaskWallet.MetaMaskWallet;
|
||||
|
||||
class Test1 extends BaseTest {
|
||||
constructor(driver) {
|
||||
super(driver);
|
||||
|
||||
|
||||
}
|
||||
async run() {
|
||||
|
||||
var account='./owners/owner1.json';
|
||||
var scenario='./scenarios/T1RnWy.json';
|
||||
var own=new Owner(this.driver,account);
|
||||
var crowdsale=await own.createCrowdsale(scenario);
|
||||
console.log("TokenAddress"+crowdsale.tokenAddress);
|
||||
console.log("ContractAddress"+crowdsale.contractAddress);
|
||||
console.log("url"+crowdsale.url);
|
||||
own.openManage();
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
module.exports.Test1=Test1;
|
||||
|
||||
|
|
@ -0,0 +1,73 @@
|
|||
//const Web3 = require('web3');
|
||||
const key = require('selenium-webdriver').Key;
|
||||
const webdriver = require('selenium-webdriver'),
|
||||
chrome = require('selenium-webdriver/chrome'),
|
||||
firefox = require('selenium-webdriver/firefox'),
|
||||
by = require('selenium-webdriver/lib/by');
|
||||
const By=by.By;
|
||||
|
||||
const wizardWelcome=require('../pages/WizardWelcome.js');
|
||||
const meta=require('../pages/MetaMask.js');
|
||||
const managePage=require('../pages/ManagePage.js');
|
||||
const ManagePage=managePage.ManagePage;
|
||||
const baseTest=require('./BaseTest.js');
|
||||
const utils=require('../utils/Utils.js');
|
||||
const Utils=utils.Utils;
|
||||
const Web3 = require('web3');
|
||||
const fs = require('fs');
|
||||
const metaMaskWallet=require('../entity/MetaMaskWallet.js');
|
||||
const MetaMaskWallet=metaMaskWallet.MetaMaskWallet;
|
||||
|
||||
|
||||
|
||||
|
||||
class Test2 extends baseTest.BaseTest {
|
||||
constructor(driver,configFile) {
|
||||
super(driver);
|
||||
this.configFile=configFile;
|
||||
|
||||
}
|
||||
async run() {
|
||||
|
||||
const utils=new Utils();
|
||||
var startURL=utils.getStartURL(this.configFile);
|
||||
|
||||
var welcomePage = new wizardWelcome.WizardWelcome(this.driver,startURL);
|
||||
var scenarioFile=utils.getScenarioFile(this.configFile);
|
||||
var wallet=MetaMaskWallet.createMetaMaskWallet(scenarioFile);
|
||||
var metaMask = new meta.MetaMask(this.driver,wallet);
|
||||
var mngPage=new ManagePage(this.driver);
|
||||
|
||||
metaMask.open();
|
||||
metaMask.activate();
|
||||
welcomePage.switchToAnotherPage();
|
||||
welcomePage.open();
|
||||
welcomePage.clickButtonChooseContract();
|
||||
do {} while(!await mngPage.isAvailable());
|
||||
var contract="0x7eB29E0922C87D728c81A9FAB66e97668c917108";
|
||||
mngPage.URL=startURL+"manage/"+contract;
|
||||
mngPage.open();
|
||||
//this.driver.sleep(5000);
|
||||
|
||||
do{
|
||||
|
||||
} while(!await mngPage.isPresentButtonFinalize());
|
||||
console.log(await mngPage.isAvailableDistribute());
|
||||
|
||||
mngPage.clickButtonFinalize();
|
||||
// if (mngPage.isAvailableDistribute())mngPage.clickButtonDistribute();
|
||||
//if (mngPage.isAvailableFinalize()) mngPage.clickButtonFinalize();
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
module.exports.Test2=Test2;
|
||||
|
||||
|
|
@ -0,0 +1,36 @@
|
|||
const baseTest=require('./BaseTest.js');
|
||||
const BaseTest=baseTest.BaseTest;
|
||||
const investPage=require('../pages/InvestPage.js');
|
||||
const InvestPage=investPage.InvestPage;
|
||||
const metaMaskWallet=require('../entity/MetaMaskWallet.js');
|
||||
const MetaMaskWallet=metaMaskWallet.MetaMaskWallet;
|
||||
const metaMask=require('../pages/MetaMask.js');
|
||||
const MetaMask=metaMask.MetaMask;
|
||||
class Test3 extends BaseTest
|
||||
{
|
||||
constructor(driver) {
|
||||
super(driver);
|
||||
|
||||
|
||||
}
|
||||
async run()
|
||||
{
|
||||
var wallet=new MetaMaskWallet();
|
||||
wallet.account="0xF16AB2EA0a7F7B28C267cbA3Ed211Ea5c6e27411";
|
||||
wallet.privateKey="03c06a9fab22fe0add145e337c5a8251e140f74468d72eab17ec7419ab812cd0";
|
||||
wallet.networkID="4";
|
||||
var metaMask = new MetaMask(this.driver,wallet);
|
||||
metaMask.switchToAnotherPage();
|
||||
metaMask.chooseProvider(4);
|
||||
metaMask.switchToAnotherPage();
|
||||
|
||||
var e=new InvestPage(this.driver);
|
||||
this.driver.get("https://wizard.poa.network/invest?addr=0xcB82AF7fD8Baa5A144Eaa90101c4901D987f9bf5&networkID=4")
|
||||
this.driver.sleep(1000);
|
||||
console.log(await e.getTokenAddress());
|
||||
console.log(await e.getContractAddress());
|
||||
console.log(await e.getURL());
|
||||
}
|
||||
|
||||
}
|
||||
module.exports.Test3=Test3;
|
|
@ -0,0 +1,109 @@
|
|||
//console.log(module.filename);
|
||||
const webdriver = require('selenium-webdriver'),
|
||||
chrome = require('selenium-webdriver/chrome'),
|
||||
firefox = require('selenium-webdriver/firefox'),
|
||||
by = require('selenium-webdriver/lib/by');
|
||||
const fs = require('fs');
|
||||
const Web3 = require('web3');
|
||||
|
||||
class Utils {
|
||||
|
||||
|
||||
openAnotherTab(driver, URL) {
|
||||
driver.executeScript('window.open("' + URL + '");');
|
||||
}
|
||||
|
||||
focusOn(driver) {
|
||||
driver.executeScript('alert("Focus window")');
|
||||
driver.switchTo().alert().accept();
|
||||
}
|
||||
|
||||
getStartURL(fileName) {
|
||||
var obj = JSON.parse(fs.readFileSync(fileName, "utf8"));
|
||||
return obj.startURL;
|
||||
|
||||
}
|
||||
|
||||
getInstallMetamask(fileName) {
|
||||
var obj = JSON.parse(fs.readFileSync(fileName, "utf8"));
|
||||
return obj.installMetaMask;
|
||||
|
||||
}
|
||||
|
||||
|
||||
print(arr) {
|
||||
for (var i = 0; i < arr.length; i++) {
|
||||
console.log(arr[i]);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
getTransactionCount(address) {
|
||||
|
||||
var w = new Web3(new Web3.providers.HttpProvider("https://rinkeby.infura.io/"));
|
||||
var n = w.eth.getTransactionCount(address.toString());//returns Number
|
||||
//console.log(n);
|
||||
fs.writeFileSync("tempAddr.txt", n);
|
||||
return n;
|
||||
}
|
||||
|
||||
takeScreenshoot(driver, path) {
|
||||
driver.takeScreenshot()
|
||||
.then((res) => {
|
||||
//console.log(res);
|
||||
var d = new Date();
|
||||
var buf = new Buffer(res, 'base64');
|
||||
|
||||
|
||||
fs.writeFileSync('./artifacts/screenshoot' + d.getTime() + '.png', buf);//for circleci
|
||||
fs.writeFileSync(path + "/screenshoot" + d.getTime() + '.png', buf);
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
startBrowser() {
|
||||
var options = new chrome.Options();
|
||||
//options.addArguments("user-data-dir=/home/d/GoogleProfile");
|
||||
//options.addArguments('start-maximized');
|
||||
options.addArguments('disable-popup-blocking');
|
||||
options.addArguments('test-type');
|
||||
return new webdriver.Builder().withCapabilities(options.toCapabilities()).build();
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
startBrowserWithMetamask() {
|
||||
var source = 'MetaMask.crx';
|
||||
if (!fs.existsSync(source)) source = './node_modules/create-poa-crowdsale/MetaMask.crx';
|
||||
console.log(source);
|
||||
var options = new chrome.Options();
|
||||
options.addExtensions(source);
|
||||
//options.addArguments("user-data-dir=/home/d/GoogleProfile");
|
||||
//options.addArguments("user-data-dir=/home/d/.config/google-chrome/");
|
||||
|
||||
options.addArguments('start-maximized');
|
||||
options.addArguments('disable-popup-blocking');
|
||||
//options.addArguments('test-type');
|
||||
return new webdriver.Builder().withCapabilities(options.toCapabilities()).build();
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
getScenarioFile(fileName) {
|
||||
var obj = JSON.parse(fs.readFileSync(fileName, "utf8"));
|
||||
return obj.scenario;
|
||||
|
||||
}
|
||||
zoom(driver,z){
|
||||
driver.executeScript
|
||||
("document.body.style.zoom = '"+z+"'");
|
||||
}
|
||||
}
|
||||
module.exports={
|
||||
Utils:Utils
|
||||
}
|
Loading…
Reference in New Issue