This commit is contained in:
Cale Teeter 2020-05-11 08:32:58 -04:00
Родитель 2722763c3e
Коммит 9c81e522b9
6 изменённых файлов: 210 добавлений и 895 удалений

Просмотреть файл

@ -1,24 +0,0 @@
.idea/**
.vscode/**
.vscode-test/**
coverage/**
drizzleUI/**
node_modules/**
out/**
!out/src/mscorlib.js
!out/src/Nethereum.Generators.DuoCode.js
!out/src/extension.js
!out/src/debugger.js
!out/src/web3ProviderResolver.js
!out/src/checkTruffleConfigTemplate.js
src/**
test/**
.editorconfig
.gitignore
.npmignore
**/tsconfig.json
**/tslint.json
**/*.map
**/*.ts
**/webpack.config.js
**/coverconfig.json

Просмотреть файл

@ -2,6 +2,17 @@
All notable changes to the "azure blockchain" extension will be documented in this file.
## 1.3.1
### Enhancements
- Updated README.md with changes for updated branding.
- Rebranding commands and UI elements.
### Fixes
### Internal Improvements
## 1.3.0
### Enhancements

Просмотреть файл

@ -1,151 +0,0 @@
# Change Log
All notable changes to the "azure blockchain" extension will be documented in this file.
## 1.2.0
### Enhancements
- Add the ability to create new Blockchain Applications for Blockchain Data Manager
- Remove token menu and UI from extension
- Add changelog popup on extension upgrade
### Fixes
- Fix issue with broken code generation when using custom build directories
- Fix issue with OpenZeppelin contracts not showing as valid contracts for Blockchain Data Manager applications
### Internal Improvements
- Updates to telemetry for ABS deployments
## 1.1.0
### Enhancements
- Implement BDM core operations
### Fixes
- Fixed error when adding Mocks category from OpenZeppelin
- Removed unnecessary notifications when deploying to removed networks
### Internal Improvements
## 1.0.0
### Enhancements
- Added UI to handle required parameters for OpenZeppelin contract deployment.
- Added Blockchain Data Manager to the core view for connecting to existing instances.
### Fixes
- Cleanup of obfuscation for build directory path.
- Merge of public PR for url checker to include basic auth.
### Internal Improvements
- Refactoring custom build directory code.
## 0.1.13
### Enhancements
- Added progress notifications for long running tasks.
- Updated transaction bytecode copy option to support libraries and complex contracts.
- Added the ability to upgrade contracts deployed as part of OpenZeppelin.
- Added the ability for contract build redirects from configuration to be respected.
### Fixes
- Updated requirements for minimum VS Code version to 1.36.1. This was to resolve some issues specific to Mac OS.
- Updated notifications for code generation to be accurate for each type (logic app, flow app, function).
### Internal Improvements
- Test runner enhancements to fix some test issues (timing)
- Updated search tags for SEO
## 0.1.12
- Deployments from external truffle boxes can now deploy to Azure Blockchain Service
- Additional context menu for deployed contract bytecode (transaction bytecode)
- Fix on Mocks category for OpenZeppelin to remove the dead link for not existent docs
- Better handling of OpenZeppelin when multiple categories are downloaded.
- Fix misspelling of OpenZeppelin on the welcome page.
## 0.1.11
- Fixed issue with Logic App generation JSON schema
- Added Contract UI support for contracts deployed on Azure Blockchain Service
- Updated deprecated Truffle NPM packages
- Bumped HD wallet provider to latest Truffle version
- Minimized output channel logs
- Fixed output channel issue which shows JavaScript object after contract migration
- Preview features added for token (TTI compliant) generation were added.
## 0.1.10
- Fixed Drizzle error handling issues
- Updated Azure Blockchain Service logos in tree view
- Updated Azure Blockchain Development Kit logo
- Fixed unit tests for debugger, OpenZeppelin and Truffle commands
- Improved sign-in support for Infura projects
## 0.1.9
- Added support for Infura project integration and account management
## 0.1.8
- Added support for Open Zeppelin contract/library download and deployment
- Contract UI/Interaction functionality updates
- Implement support for array types as function parameters
- Support Enum types
- Bug fixes
- Ganache not properly shutting down on VS Code exit
- Closing open items raised in the extension VS Code public GitHub repo
## 0.1.7
- Added contract UI/interaction feature
- Added Solidity debugging feature
## 0.1.6
- Added telemetry reporting capabilities
## 0.1.5
- Backend test coverage
- Cleanup of packaging output, optimization
- Truffle installation fails on new installs fix
- Improved support for multiple ganache instances
- Preflight validation for ABS deployments
- Cleanup of code generation output
- Ganache commands cleanup
- Add command to export private key from mnemonic
- Better error handling ABS deployments
## 0.1.4
- bug fixes
## 0.1.3
- various bug fixes
- moved logic app/function/flow generators out of Truffle build directory into their own directory
- refactoring of Welcome/Requirements pages
## 0.1.2
- doc and bug fixes for contract code generation
## 0.1.1
- Updated menu options
## 0.1.0
- Initial release

250
README.md
Просмотреть файл

@ -1,14 +1,179 @@
# Azure Blockchain Development Kit
# Blockchain Development Kit for Ethereum
[![Version](https://vsmarketplacebadge.apphb.com/version/AzBlockchain.azure-blockchain.svg)](https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-logicapps) [![Installs](https://vsmarketplacebadge.apphb.com/installs/AzBlockchain.azure-blockchain.svg)](https://marketplace.visualstudio.com/items?itemName=AzBlockchain.azure-blockchain) [![Rating](https://vsmarketplacebadge.apphb.com/rating-star/AzBlockchain.azure-blockchain.svg)](https://marketplace.visualstudio.com/items?itemName=AzBlockchain.azure-blockchain#review-details) [![Build status](https://msazure.visualstudio.com/Blockchain/_apis/build/status/Blockchain-VS-Extensions/Blockchain-VS-Extension-Prod)](https://msazure.visualstudio.com/Blockchain/_build/latest?definitionId=71311)
Azure Blockchain Development Kit simplifies how you create, connect to, build and deploy smart contracts on Ethereum ledgers.
The extension simplifies how you create, build and deploy smart contracts on Ethereum ledgers.
**Our [Wiki page](https://github.com/Microsoft/vscode-azure-blockchain-ethereum/wiki) includes a comprehensive getting started guide with detailed usage instructions for this plugin**
- If you are doing open source blockchain development, the extension has built in integration for open source tools such as [Truffle](https://truffleframework.com/), [Infura](https://infura.io/), and [OpenZeppelin](https://openzeppelin.com/). An Azure subscription is optional.
- If you are doing Azure development, an Azure subscription is required, log into your Azure subscription or create a [free account](https://azure.microsoft.com/free/?WT.mc_id=A261C142F) before you begin. Enjoy the same integration of open source tools with Azure Blockchain Service and other Azure hosted blockchain networks such as [Hyperledger Besu](https://azuremarketplace.microsoft.com/en-us/marketplace/apps/consensys.hyperledger-besu-quickstart) or the enterprise supported PegaSys Plus network.
## Prerequisites
# Open Source Ethereum development
1. If you do not have an Azure subscription, create a [free account](https://azure.microsoft.com/free/?WT.mc_id=A261C142F) before you begin.
<details>
<summary style='font-size:15pt'>Get started with smart contracts</summary>
## Create a new smart contract project
The Blockchain Developer Kit was built to work effectively for both new users to Ethereum, but not get in the way for those familiar with the process. One of the primary goals is to help users create a project structure for these smart contracts, help in the compilation and building of these assets, deployment of these assets to blockchain endpoints as well as debugging of these contracts.
One of the frameworks that the extension leverages is [Truffle Suite](https://truffleframework.com/), a well known set of tools to assist in smart contract and Dapp development. Developers that are familiar with Truffle Suite may use the Truffle command line `e.g., Truffle Init` directly from the VS Code terminal, if they like.
For developers who are not familiar with Truffle, or prefer to use the Command Palette, the extension can easily scaffold out a project directory using the following steps.
1. From the [Command Palette](https://github.com/Microsoft/vscode-azure-blockchain-ethereum/wiki/Command-Palette), type `Blockchain: New Solidity Project`
2. Select an empty directory to scaffold out your project.
3. Choose a name for your contract.
4. Press Enter.
![Command Palette - New Solidity Project](https://github.com/Azure-Samples/blockchain-devkit/raw/master/media/extensionMedia/createNewProject.gif)
## Build your smart contracts
Your newly scaffolded out directory includes a simple contract and all the necessary files to build and deploy a simple, working, contract to the blockchain endpoint. Use the following steps to build your contract
1. Select your contract Solidity (.sol) file, right click and choose `Build Contracts`
![Right click shortcut - build contracts](https://github.com/Azure-Samples/blockchain-devkit/raw/master/media/extensionMedia/buildContractRightClick.gif)
## Deploy to the Ethereum blockchain RPC endpoint
Once compiled, you will have your contract, contract metadata (e.g., contract ABI, bytecode) available in the smart contract .json file which will be located in the`./build directory` The next steps is to deploy these contracts to a blockchain network.
For new users, this can be hard to understand, because there are multiple steps that need to occur for the deployment to be successful. To ease this burden the extension provide a simple model to deploy to various networks. By default, this will be a local network, using Ganache. The extension will start and run an instance of ganache for the user. The options to initiate this deployment are below.
1. Select your contract Solidity (.sol) file, right click and choose `Deploy Contracts`
![Right click smart contract - deploy contract](https://github.com/Azure-Samples/blockchain-devkit/raw/master/media/extensionMedia/deployContractRightClick.gif)
</details>
<br />
<details>
<summary style='font-size:15pt'>Deploy with Truffle Ganache locally</summary>
For rapid development of smart contracts, having the ability deploy contracts to a blockchain quickly to test and debug is a key principle. One of the most popular models to achive this is using Truffle Ganache, which acts as a local blockchain/blockchain emulator to allow this quick deployment and iteration that is ideal for developers.
The extension has integrated Ganache directly into the IDE to further lower the bar to entry, and allow even faster development iteration. By default, there is nothing to configure, and the following steps can be used.
1. After selecting to deploy the contracts, either from the Command Pallette or by right clicking on the contract and selecting Deploy contracts, a dropdown will be presented with options for _where_ to deploy the contract. By default there will be a single entry on this list named development.
2. After selecting development, the IDE will create a new instance of Truffle Ganache, which will use the default configuration for the project as the target. The IDE will then deploy the contracts to this instance.
![Truffle default deployment](https://github.com/Azure-Samples/blockchain-devkit/raw/master/media/extensionMedia/truffleDefaultDeploy.gif)
**OPTIONAL**: If there is a need to control this Ganache instance more or change the configuration, there are some other options that can be used that the IDE can help with as well.
1. If there is a need to run the Ganache instance on a port other than the default of 8545, a new Local Network can be created and the port configuration added for this. The steps do this are:
a. Expand the Blockchain view in the extension by clicking the name.
b. Next click Create a new network.
c. Select Local Service
d. Provide a name for this service that will be referenced when targeting it from deployment.
e. Enter the port number to use for this local network.
![Custom local service](https://github.com/Azure-Samples/blockchain-devkit/raw/master/media/extensionMedia/truffleCustomDeploy.gif)
</details>
<br />
<details>
<summary style='font-size:15pt'>Deploy with Infura to Ethereum mainnet and testnets</summary>
If you are a developer that would like to target public testnet and mainnet for Ethereum, the ability to leverage Infura from inside the IDE is provided via this extension.
For those that aren't familiar with Infura, it provides the tools and infrastructure that allow developers to easily take their blockchain application from testing to scaled deployment - with simple, reliable access to Ethereum mainnet and testnets, and also has support for IPFS. Details can be found on the [Getting started with Infura blog](https://blog.infura.io/getting-started-with-infura-28e41844cc89/) and on the [Infura Docs pages](https://infura.io/docs).
To use Infura, the first step is to either create or connect to an existing Infura project. The IDE will step through this process.
1. Expand the Blockchain view in the extension by clicking the name.
2. Next click Create a new network.
3. Select Infura Service.
4. At this point the extension will prompt you for credentials to sign into Infura. Simply click the sign in button. Don't worry if you don't already have an Infura account, because you can create one if needed.
5. On the Infura login page, login with your Infura account credentials. If you don't already have an Infura account, simply click the Sign Up link at the bottom.
6. After signing into Infura, you will be askted for authorization to share your Infura projects with the extension. Click Authorize.
7. Next close the browser window and you will back in the IDE. A prompt will be presented to allow you to enter a project name. Enter the desired name for this.
8. Next select the availability of the project inside Infura (public or private). By default, public is the option used.
9. After a few seconds, the Blockchain view will show a new Infura Service, with your project nested under, and under this will the various endpoints that Infura provides.
10. Now that a connection to Infura has been created, this network can easily be targeted when deploying contracts. When right clicking and deploying contracts, a set of options will be added for these new Infura destinations.
11. Simply select the desired target network endpoint and the extension will deploy the contracts to this location.
![Infura deploy](https://github.com/Azure-Samples/blockchain-devkit/raw/master/media/extensionMedia/infuraDeploy.gif)
</details>
<br />
<details>
<summary style='font-size:15pt'>Deploy with Hyperledger Besu</summary>
Hyperledger Besu is a popular Ethereum client that is unique in that it offers a client that can be used in either public networks, such as Ethereum mainnet or private, consortium based networks. It can be deployed a variety of [ways](https://besu.hyperledger.org/en/stable/HowTo/Get-Started/Install-Binaries/), and recently a preview has been made available in [Azure](https://azuremarketplace.microsoft.com/en-us/marketplace/apps/consensys.hyperledger-besu-quickstart?tab=Overview).
Currently, the Hyperledger Besu is fully compatible with the extension, however the provisioning of the nodes is not yet fully integrated. To connect to a running Besu node with the extension, you can do the following:
1. Deploy Hyperledger Besu locally or in the cloud (see links in above).
2. Retrieve the JSON rpc endpoint that will be used to communicate with the Besu network. This varies based on the deployment model, for Azure deployments these can be retrieved from the output parameters from the deployment.
3. Update the configuration manually. This is shown in the video below. The extension has the ability to use an HD Wallet provider that simply requires a file with a mnemonic to function.
Add the following to the configuration:
```
besu: {
network_id: "*",
gas: 0,
gasPrice: 0,
provider: new HDWalletProvider(
fs.readFileSync("<path to a file with a mnemonic>", "utf-8"),
"<besu jsonrpc endpoint>"
),
},
```
![Besu deploy](https://github.com/Azure-Samples/blockchain-devkit/raw/master/media/extensionMedia/hyperledgerBesuDeploy.gif)
</details>
<br />
<details>
<summary style='font-size:15pt'>Deploy with Azure Blockchain Service to cloud</summary>
If you are a developer that would like to target a network that leverages Azure, this option is also available. The option to create new networks or connect to existing ones are is available, the same as with Infura and Local networks!
1. Click `-> Create a new network` in the AZURE BLOCKCHAIN tab, or type `Azure Blockchain: Create a new network` in the [Command Palette](https://github.com/Microsoft/vscode-azure-blockchain-ethereum/wiki/Command-Palette).
2. Choose your subscription, resource group and region to deploy to.
3. Enter the name of your [Consortium](https://docs.microsoft.com/azure/blockchain/service/consortium)
4. Wait until your resource has been created in Azure.
`Note: Deploying the Azure Blockchain Service takes quite some time to complete. Please check the deployment status in the Azure portal.`
![Create and Azure Blockchain Service](https://github.com/Azure-Samples/blockchain-devkit/raw/master/media/extensionMedia/azureDeploy.gif)
</details>
<br />
## System Requirements
@ -20,76 +185,7 @@ Azure Blockchain Development Kit simplifies how you create, connect to, build an
- Node 10.15.x
- Git 2.10.x
## Create an Azure Blockchain Service
The first thing to do is to create an Azure Blockchain Service in your subscription. You can do this directly through VS Code once you've installed this extension.
1. Click `-> Create a new network` in the AZURE BLOCKCHAIN tab, or type `Azure Blockchain: Create a new network` in the [Command Palette](https://github.com/Microsoft/vscode-azure-blockchain-ethereum/wiki/Command-Palette).
![Create and Azure Blockchain Service](https://raw.githubusercontent.com/Microsoft/vscode-azure-blockchain-ethereum/master/images/createProject.png)
2. Choose your subscription, resource group and region to deploy to.
3. Enter the name of your [Consortium](https://docs.microsoft.com/azure/blockchain/service/consortium)
4. Wait until your resource has been created in Azure.
`Note: Deploying the Azure Blockchain Service takes quite some time to complete. Please check the deployment status in the Azure portal.`
## Create a new Solidity Contract
The Azure Blockchain Developer Kit for Ethereum leverages the [Truffle Suite](https://truffleframework.com/) of tools to help scaffold, build and deploy contracts.
Developers that are familiar with Truffle Suite may use the Truffle command line `e.g., Truffle Init` directly from the VS Code terminal.
For developers who are not familiar with Truffle, or prefer to use the Command Palette, the Azure Blockchain Toolkit for Ethereum can easily scaffold out a project directory using the following steps.
1. From the [Command Palette](https://github.com/Microsoft/vscode-azure-blockchain-ethereum/wiki/Command-Palette), type `Azure Blockchain: New Solidity Project`
![Command Palette - New Solidity Project](https://raw.githubusercontent.com/Microsoft/vscode-azure-blockchain-ethereum/master/images/createNewProject.gif)
2. Select an empty directory to scaffold out your project.
3. Choose a name for your contract.
4. Enter.
Once complete, your project directory should look like this:
[![completed directory](https://raw.githubusercontent.com/Microsoft/vscode-azure-blockchain-ethereum/master/images/newProjectDirCloseup.png)](https://raw.githubusercontent.com/Microsoft/vscode-azure-blockchain-ethereum/master/images/newProjectDir.png#lightbox)
## Build your Solidity Contract
Your newly scaffolded out directory includes a simple contract and all the necessary files to build and deploy a simple, working, contract to the Azure Blockchain Service. Use the following steps to build your contract
#### Option 1: Command Palette
1. From the [Command Palette](https://github.com/Microsoft/vscode-azure-blockchain-ethereum/wiki/Command-Palette), type `Azure Blockchain: Build Contracts`
![Command Palette - Build Contracts](https://raw.githubusercontent.com/Microsoft/vscode-azure-blockchain-ethereum/master/images/buildContracts.png)
#### Option 2: Right click on your .sol file
1. Select your contract Solidity (.sol) file, right click and choose `Build Contracts`
![Right click shortcut - build contracts](https://raw.githubusercontent.com/Microsoft/vscode-azure-blockchain-ethereum/master/images/buildContractRightClick.gif)
## Deploy your smart contract to Azure Blockchain Service
Once compiled, you will have your contract, contract metadata (e.g., contract ABI, bytecode) available in the smart contract .json file which will be located in the`./build directory`
Once you deployment/creation of the Azure Blockchain Service is complete you will also see that consortium in your VS Code Blockchain tab. Once all these components are ready, deploying your new contract is simple and fast. Use the following steps to deploy your contract
#### Option 1: Command Palette
1. From the [Command Palette](https://github.com/Microsoft/vscode-azure-blockchain-ethereum/wiki/Command-Palette), type `Azure Blockchain: Deploy Contracts`
![Command Palette - Deploy Contracts](https://raw.githubusercontent.com/Microsoft/vscode-azure-blockchain-ethereum/master/images/deployContracts.png)
#### Option 2: Right click on your .sol file
1. Select your contract Solidity (.sol) file, right click and choose `Deploy Contracts`
![Right click smart contract - deploy contract](https://raw.githubusercontent.com/Microsoft/vscode-azure-blockchain-ethereum/master/images/deployContractsRightClick.png)
**Our [Wiki page](https://github.com/Microsoft/vscode-azure-blockchain-ethereum/wiki) includes a comprehensive getting started guide with detailed usage instructions for this plugin**
## Code of Conduct
@ -100,3 +196,7 @@ contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additio
## Telemetry
VS Code collects usage data and sends it to Microsoft to help improve our products and services. Read our [privacy statement](https://go.microsoft.com/fwlink/?LinkID=528096&clcid=0x409) to learn more. If you dont wish to send usage data to Microsoft, you can set the `telemetry.enableTelemetry` setting to `false`. Learn more in our [FAQ](https://code.visualstudio.com/docs/supporting/faq#_how-to-disable-telemetry-reporting).
```
```

Просмотреть файл

@ -1,11 +1,11 @@
{
"name": "azure-blockchain",
"displayName": "Azure Blockchain Development Kit for Ethereum",
"description": "Develop, deploy debug and manage your Azure Blockchain Service solution",
"displayName": "Blockchain Development Kit for Ethereum",
"description": "Develop, deploy, debug and manage your Ethereum based blockchain solutions",
"publisher": "AzBlockchain",
"preview": false,
"icon": "images/blockchain-service-logo.png",
"version": "1.3.0",
"version": "1.3.1",
"repository": {
"type": "git",
"url": "https://github.com/Microsoft/vscode-azure-blockchain-ethereum"
@ -63,7 +63,7 @@
],
"contributes": {
"configuration": {
"title": "Azure Blockchain Development Kit for Ethereum",
"title": "Blockchain Development Kit for Ethereum",
"properties": {
"azureBlockchainService.ignoreLongRunningTaskNotification": {
"type": "boolean",
@ -94,32 +94,32 @@
{
"command": "azureBlockchainService.generateMicroservicesWorkflows",
"title": "Generate Microservices for Smart Contracts",
"category": "Azure Blockchain"
"category": "Blockchain"
},
{
"command": "azureBlockchainService.generateDataPublishingWorkflows",
"title": "Generate Data Publishing Workflows for Smart Contracts",
"category": "Azure Blockchain"
"category": "Blockchain"
},
{
"command": "azureBlockchainService.generateReportPublishingWorkflows",
"title": "Generate Report Publishing Workflows for Smart Contracts",
"category": "Azure Blockchain"
"category": "Blockchain"
},
{
"command": "azureBlockchainService.generateEventPublishingWorkflows",
"title": "Generate Event Publishing Workflows for Smart Contracts",
"category": "Azure Blockchain"
"category": "Blockchain"
},
{
"command": "azureBlockchainService.showWelcomePage",
"title": "Show Welcome Page",
"category": "Azure Blockchain"
"category": "Blockchain"
},
{
"command": "azureBlockchainService.refresh",
"title": "Refresh",
"category": "Azure Blockchain",
"category": "Blockchain",
"icon": {
"light": "resources/light/refresh.svg",
"dark": "resources/dark/refresh.svg"
@ -128,107 +128,107 @@
{
"command": "contract.copyByteCode",
"title": "Copy Constructor Bytecode",
"category": "Azure Blockchain"
"category": "Blockchain"
},
{
"command": "contract.copyDeployedByteCode",
"title": "Copy Transaction Bytecode",
"category": "Azure Blockchain"
"category": "Blockchain"
},
{
"command": "contract.copyABI",
"title": "Copy Contract ABI",
"category": "Azure Blockchain"
"category": "Blockchain"
},
{
"command": "truffle.newSolidityProject",
"title": "New Solidity Project",
"category": "Azure Blockchain"
"category": "Blockchain"
},
{
"command": "azureBlockchainService.buildContracts",
"title": "Build Contracts",
"category": "Azure Blockchain"
"category": "Blockchain"
},
{
"command": "azureBlockchainService.deployContracts",
"title": "Deploy Contracts",
"category": "Azure Blockchain"
"category": "Blockchain"
},
{
"command": "azureBlockchainService.connectProject",
"title": "Connect to network",
"category": "Azure Blockchain"
"category": "Blockchain"
},
{
"command": "azureBlockchainService.showSmartContractPage",
"title": "Show Smart Contract Interaction Page",
"category": "Azure Blockchain"
"category": "Blockchain"
},
{
"command": "azureBlockchainService.copyRPCEndpointAddress",
"title": "Copy RPC Endpoint Address",
"category": "Azure Blockchain"
"category": "Blockchain"
},
{
"command": "azureBlockchainService.createProject",
"title": "Create a new network",
"category": "Azure Blockchain"
"category": "Blockchain"
},
{
"command": "azureBlockchainService.disconnectProject",
"title": "Disconnect",
"category": "Azure Blockchain"
"category": "Blockchain"
},
{
"command": "azureBlockchainService.startGanacheServer",
"title": "Start Ganache Server",
"category": "Azure Blockchain"
"category": "Blockchain"
},
{
"command": "azureBlockchainService.stopGanacheServer",
"title": "Stop Ganache Server",
"category": "Azure Blockchain"
"category": "Blockchain"
},
{
"command": "azureBlockchainService.signInToInfuraAccount",
"title": "Sign in to Infura account",
"category": "Azure Blockchain"
"category": "Blockchain"
},
{
"command": "azureBlockchainService.signOutOfInfuraAccount",
"title": "Sign out of Infura account",
"category": "Azure Blockchain"
"category": "Blockchain"
},
{
"command": "azureBlockchainService.getPrivateKey",
"title": "Retrieve private key",
"category": "Azure Blockchain"
"category": "Blockchain"
},
{
"command": "extension.truffle.debugTransaction",
"title": "Debug Transaction",
"category": "Azure Blockchain"
"category": "Blockchain"
},
{
"command": "openZeppelin.addCategory",
"title": "Add contracts from OpenZeppelin",
"category": "Azure Blockchain"
"category": "Blockchain"
},
{
"command": "azureBlockchainService.openAtAzurePortal",
"title": "Open at Azure Portal",
"category": "Azure Blockchain"
"category": "Blockchain"
},
{
"command": "azureBlockchainService.createNewBDMApplication",
"title": "Create Blockchain Application",
"category": "Azure Blockchain"
"category": "Blockchain"
},
{
"command": "azureBlockchainService.deleteBDMApplication",
"title": "Delete Blockchain Application",
"category": "Azure Blockchain"
"category": "Blockchain"
}
],
"breakpoints": [
@ -453,7 +453,7 @@
"explorer": [
{
"id": "AzureBlockchain",
"name": "Azure Blockchain"
"name": "Blockchain Networks"
}
],
"debug": [

Просмотреть файл

@ -1,621 +0,0 @@
{
"name": "azure-blockchain",
"displayName": "Azure Blockchain Development Kit for Ethereum",
"description": "Develop, deploy debug and manage your Azure Blockchain Service solution",
"publisher": "AzBlockchain",
"preview": false,
"icon": "images/blockchain-service-logo.png",
"version": "1.2.0",
"repository": {
"type": "git",
"url": "https://github.com/Microsoft/vscode-azure-blockchain-ethereum"
},
"bugs": {
"url": "https://github.com/Microsoft/vscode-azure-blockchain-ethereum/issues"
},
"homepage": "https://github.com/Microsoft/vscode-azure-blockchain-ethereum/blob/master/README.md",
"license": "MIT",
"engines": {
"vscode": "^1.36.1"
},
"keywords": [
"blockchain",
"azure",
"ethereum",
"debuggers",
"snippet"
],
"categories": [
"Azure",
"Extension Packs",
"Programming Languages"
],
"aiKey": "INSERTAIKEY",
"main": "./out/src/extension.js",
"activationEvents": [
"onView:AzureBlockchain",
"onCommand:azureBlockchainService.showWelcomePage",
"onCommand:azureBlockchainService.refresh",
"onCommand:contract.copyByteCode",
"onCommand:contract.copyDeployedByteCode",
"onCommand:contract.copyABI",
"onCommand:truffle.createLocalUI",
"onCommand:truffle.newSolidityProject",
"onCommand:truffle.buildContracts",
"onCommand:truffle.deployContracts",
"onCommand:azureBlockchainService.generateReportPublishingWorkflows",
"onCommand:azureBlockchainService.generateMicroservicesWorkflows",
"onCommand:azureBlockchainService.generateEventPublishingWorkflows",
"onCommand:azureBlockchainService.generateDataPublishingWorkflows",
"onCommand:azureBlockchainService.connectProject",
"onCommand:azureBlockchainService.showSmartContractPage",
"onCommand:azureBlockchainService.copyRPCEndpointAddress",
"onCommand:azureBlockchainService.createProject",
"onCommand:azureBlockchainService.disconnectProject",
"onCommand:extension.truffle.debugTransaction",
"onCommand:openZeppelin.addCategory",
"onCommand:azureBlockchainService.signInToInfuraAccount",
"onCommand:azureBlockchainService.signOutOfInfuraAccount",
"onCommand:azureBlockchainService.openAtAzurePortal",
"onCommand:azureBlockchainService.createNewBDMApplication",
"onCommand:azureBlockchainService.deleteBDMApplication",
"onDebug"
],
"contributes": {
"configuration": {
"title": "Azure Blockchain Development Kit for Ethereum",
"properties": {
"azureBlockchainService.ignoreLongRunningTaskNotification": {
"type": "boolean",
"default": false,
"description": "Disable notification on long running tasks."
},
"azureBlockchainService.openZeppelin.version": {
"type": "string",
"default": "2.4.0",
"scope": "The latest Open Zeppelin version"
},
"azureBlockchainService.storageAccount.name": {
"type": "string",
"scope": "Storage Account name"
}
}
},
"commands": [
{
"command": "azureBlockchainService.generateMicroservicesWorkflows",
"title": "Generate Microservices for Smart Contracts",
"category": "Azure Blockchain"
},
{
"command": "azureBlockchainService.generateDataPublishingWorkflows",
"title": "Generate Data Publishing Workflows for Smart Contracts",
"category": "Azure Blockchain"
},
{
"command": "azureBlockchainService.generateReportPublishingWorkflows",
"title": "Generate Report Publishing Workflows for Smart Contracts",
"category": "Azure Blockchain"
},
{
"command": "azureBlockchainService.generateEventPublishingWorkflows",
"title": "Generate Event Publishing Workflows for Smart Contracts",
"category": "Azure Blockchain"
},
{
"command": "azureBlockchainService.showWelcomePage",
"title": "Show Welcome Page",
"category": "Azure Blockchain"
},
{
"command": "azureBlockchainService.refresh",
"title": "Refresh",
"category": "Azure Blockchain",
"icon": {
"light": "resources/light/refresh.svg",
"dark": "resources/dark/refresh.svg"
}
},
{
"command": "contract.copyByteCode",
"title": "Copy Constructor Bytecode",
"category": "Azure Blockchain"
},
{
"command": "contract.copyDeployedByteCode",
"title": "Copy Transaction Bytecode",
"category": "Azure Blockchain"
},
{
"command": "contract.copyABI",
"title": "Copy Contract ABI",
"category": "Azure Blockchain"
},
{
"command": "truffle.newSolidityProject",
"title": "New Solidity Project",
"category": "Azure Blockchain"
},
{
"command": "truffle.buildContracts",
"title": "Build Contracts",
"category": "Azure Blockchain"
},
{
"command": "truffle.deployContracts",
"title": "Deploy Contracts",
"category": "Azure Blockchain"
},
{
"command": "azureBlockchainService.connectProject",
"title": "Connect to network",
"category": "Azure Blockchain"
},
{
"command": "azureBlockchainService.showSmartContractPage",
"title": "Show Smart Contract Interaction Page",
"category": "Azure Blockchain"
},
{
"command": "azureBlockchainService.copyRPCEndpointAddress",
"title": "Copy RPC Endpoint Address",
"category": "Azure Blockchain"
},
{
"command": "azureBlockchainService.createProject",
"title": "Create a new network",
"category": "Azure Blockchain"
},
{
"command": "azureBlockchainService.disconnectProject",
"title": "Disconnect",
"category": "Azure Blockchain"
},
{
"command": "azureBlockchainService.startGanacheServer",
"title": "Start Ganache Server",
"category": "Azure Blockchain"
},
{
"command": "azureBlockchainService.stopGanacheServer",
"title": "Stop Ganache Server",
"category": "Azure Blockchain"
},
{
"command": "azureBlockchainService.signInToInfuraAccount",
"title": "Sign in to Infura account",
"category": "Azure Blockchain"
},
{
"command": "azureBlockchainService.signOutOfInfuraAccount",
"title": "Sign out of Infura account",
"category": "Azure Blockchain"
},
{
"command": "azureBlockchainService.getPrivateKey",
"title": "Retrieve private key",
"category": "Azure Blockchain"
},
{
"command": "extension.truffle.debugTransaction",
"title": "Debug Transaction",
"category": "Azure Blockchain"
},
{
"command": "openZeppelin.addCategory",
"title": "Add contracts from OpenZeppelin",
"category": "Azure Blockchain"
},
{
"command": "azureBlockchainService.openAtAzurePortal",
"title": "Open at Azure Portal",
"category": "Azure Blockchain"
},
{
"command": "azureBlockchainService.createNewBDMApplication",
"title": "Create Blockchain Application",
"category": "Azure Blockchain"
},
{
"command": "azureBlockchainService.deleteBDMApplication",
"title": "Delete Blockchain Application",
"category": "Azure Blockchain"
}
],
"breakpoints": [
{
"language": "solidity"
},
{
"language": "sol"
}
],
"menus": {
"commandPalette": [
{
"when": "false",
"command": "azureBlockchainService.showSmartContractPage"
},
{
"when": "false",
"command": "azureBlockchainService.refresh"
},
{
"when": "false",
"command": "azureBlockchainService.copyRPCEndpointAddress"
},
{
"when": "false",
"command": "azureBlockchainService.disconnectProject"
},
{
"when": "resourceLangId == solidity",
"command": "azureBlockchainService.generateMicroservicesWorkflows"
},
{
"when": "resourceLangId == solidity",
"command": "azureBlockchainService.generateDataPublishingWorkflows"
},
{
"when": "resourceLangId == solidity",
"command": "azureBlockchainService.generateEventPublishingWorkflows"
},
{
"when": "resourceLangId == solidity",
"command": "azureBlockchainService.generateReportPublishingWorkflows"
},
{
"when": "false",
"command": "contract.copyByteCode"
},
{
"when": "false",
"command": "contract.copyDeployedByteCode"
},
{
"when": "false",
"command": "contract.copyABI"
},
{
"when": "azureBlockchainService:isWorkspaceOpen",
"command": "truffle.buildContracts"
},
{
"when": "azureBlockchainService:isWorkspaceOpen",
"command": "truffle.deployContracts"
},
{
"when": "false",
"command": "openZeppelin.addCategory"
},
{
"when": "false",
"command": "azureBlockchainService.openAtAzurePortal"
},
{
"when": "false",
"command": "azureBlockchainService.deleteBDMApplication"
},
{
"when": "false",
"command": "azureBlockchainService.createNewBDMApplication"
}
],
"view/title": [
{
"command": "azureBlockchainService.showWelcomePage",
"when": "view == AzureBlockchain"
},
{
"command": "azureBlockchainService.createProject",
"when": "view == AzureBlockchain"
},
{
"command": "azureBlockchainService.connectProject",
"when": "view == AzureBlockchain"
},
{
"command": "azureBlockchainService.refresh",
"when": "view == AzureBlockchain",
"group": "navigation"
}
],
"view/item/context": [
{
"command": "azureBlockchainService.disconnectProject",
"when": "view == AzureBlockchain && viewItem == project",
"group": "azureBlockchain-0@0"
},
{
"command": "azureBlockchainService.startGanacheServer",
"when": "view == AzureBlockchain && viewItem == localproject",
"group": "azureBlockchain-1@0"
},
{
"command": "azureBlockchainService.stopGanacheServer",
"when": "view == AzureBlockchain && viewItem == localproject",
"group": "azureBlockchain-1@1"
},
{
"command": "azureBlockchainService.disconnectProject",
"when": "view == AzureBlockchain && viewItem == localproject",
"group": "azureBlockchain-0@0"
},
{
"command": "azureBlockchainService.disconnectProject",
"when": "view == AzureBlockchain && viewItem == bdmproject",
"group": "azureBlockchain-0@0"
},
{
"command": "azureBlockchainService.copyRPCEndpointAddress",
"when": "view == AzureBlockchain && viewItem == network",
"group": "azureBlockchain-0@0"
},
{
"command": "azureBlockchainService.copyRPCEndpointAddress",
"when": "view == AzureBlockchain && viewItem == localnetwork",
"group": "azureBlockchain-0@0"
},
{
"command": "azureBlockchainService.openAtAzurePortal",
"when": "view == AzureBlockchain && viewItem == input",
"group": "azureBlockchain-0@0"
},
{
"command": "azureBlockchainService.openAtAzurePortal",
"when": "view == AzureBlockchain && viewItem == output",
"group": "azureBlockchain-0@0"
},
{
"command": "azureBlockchainService.createNewBDMApplication",
"when": "view == AzureBlockchain && viewItem == bdmproject",
"group": "azureBlockchain-1@1"
},
{
"command": "azureBlockchainService.deleteBDMApplication",
"when": "view == AzureBlockchain && viewItem == bdmApplication",
"group": "azureBlockchain-0@0"
}
],
"explorer/context": [
{
"when": "resourceLangId == solidity",
"command": "truffle.buildContracts",
"group": "8_buildContractGroup"
},
{
"when": "resourceLangId == solidity",
"command": "azureBlockchainService.showSmartContractPage",
"group": "8_buildContractGroup"
},
{
"when": "resourceLangId == json",
"command": "truffle.deployContracts",
"group": "8_buildContractGroup"
},
{
"when": "resourceLangId == solidity",
"command": "truffle.deployContracts",
"group": "8_buildContractGroup"
},
{
"when": "resourceLangId == json",
"command": "contract.copyByteCode",
"group": "9_copyFromContractGroup"
},
{
"when": "resourceLangId == json",
"command": "contract.copyDeployedByteCode",
"group": "9_copyFromContractGroup"
},
{
"when": "resourceLangId == json",
"command": "contract.copyABI",
"group": "9_copyFromContractGroup"
},
{
"when": "resourceLangId == solidity",
"command": "azureBlockchainService.generateMicroservicesWorkflows",
"group": "9_generationGroup"
},
{
"when": "resourceLangId == solidity",
"command": "azureBlockchainService.generateDataPublishingWorkflows",
"group": "9_generationGroup"
},
{
"when": "resourceLangId == solidity",
"command": "azureBlockchainService.generateEventPublishingWorkflows",
"group": "9_generationGroup"
},
{
"when": "resourceLangId == solidity",
"command": "azureBlockchainService.generateReportPublishingWorkflows",
"group": "9_generationGroup"
},
{
"when": "resourceLangId == solidity",
"command": "openZeppelin.addCategory",
"group": "8_buildContractGroup"
}
]
},
"views": {
"explorer": [
{
"id": "AzureBlockchain",
"name": "Azure Blockchain"
}
],
"debug": [
{
"id": "InstructionView",
"name": "Instructions"
}
]
},
"debuggers": [
{
"type": "truffle",
"label": "Truffle Debugger",
"program": "./out/src/debugger.js",
"runtime": "node",
"configurationAttributes": {
"launch": {
"required": [],
"properties": {
"stopOnEntry": {
"type": "boolean",
"description": "Automatically stop after launch.",
"default": true
},
"trace": {
"type": "boolean",
"description": "Enable logging of the Debug Adapter Protocol.",
"default": true
},
"txHash": {
"type": "string",
"description": "Transaction hash to debug",
"default": "0x"
},
"files": {
"type": "string[]",
"description": "Array of file paths of solidity files to debug",
"default": []
},
"workingDirectory": {
"type": "string",
"description": "Directory of truffle box",
"default": "${workspaceFolder}"
},
"providerUrl": {
"type": "string",
"description": "URL of provider",
"default": "http://127.0.0.1:8545"
}
}
}
},
"initialConfigurations": [
{
"type": "truffle",
"request": "launch",
"name": "Debug Transaction with Truffle",
"stopOnEntry": false,
"txHash": "0x",
"files": [],
"workingDirectory": "${workspaceFolder}",
"providerUrl": "http://127.0.0.1:8545"
}
],
"configurationSnippets": [
{
"label": "Truffle Debugger: Launch",
"description": "Runs the Truffle debugger (truffle) and attaches to a TestRPC instance",
"body": {
"type": "truffle",
"request": "launch",
"name": "Debug Transaction with Truffle",
"stopOnEntry": false,
"txHash": "0x",
"files": [],
"workingDirectory": "^\"\\${workspaceFolder}/",
"providerUrl": "http://127.0.0.1:8545"
}
}
],
"variables": {}
}
]
},
"scripts": {
"package": "npx vsce package",
"publish": "npx vsce publish",
"vscode:prepublish": "npm i && npm run webpack:prod && cd ./drizzleUI && npm i && npm run build:ext",
"compile": "npm run clean && tsc -p ./",
"webpack:prod": "webpack --mode production",
"watch": "tsc -watch -p ./",
"tslint": "tslint -t verbose src/**/*.ts test/**/*.ts",
"tslint:fix": "npm run tslint -- --fix",
"version": "tsc -v",
"test": "npm run compile && node ./out/test/runTest",
"clean": "npx rimraf -- ./out/*"
},
"devDependencies": {
"@types/astring": "^1.3.0",
"@types/estree": "^0.0.39",
"@types/download": "^6.2.4",
"@types/fs-extra": "^7.0.0",
"@types/glob": "^7.1.1",
"@types/hdkey": "^0.7.0",
"@types/istanbul": "^0.4.30",
"@types/mocha": "^5.2.7",
"@types/node": "^10.12.21",
"@types/request": "^2.48.1",
"@types/request-promise": "^4.1.44",
"@types/rewire": "^2.5.28",
"@types/semver": "^6.0.0",
"@types/sinon": "^7.0.11",
"@types/uuid": "^3.4.4",
"@types/vscode": "^1.36.1",
"copy-webpack-plugin": "^5.0.3",
"decache": "^4.5.1",
"glob": "^7.1.4",
"husky": "^2.4.0",
"istanbul": "^0.4.5",
"lint-staged": "^8.2.0",
"mocha": "^6.2.0",
"remap-istanbul": "^0.13.0",
"rewire": "^4.0.1",
"sinon": "^7.3.2",
"truffle": "^5.0.14",
"ts-loader": "6.2.1",
"tslint": "^5.18.0",
"tslint-microsoft-contrib": "^6.2.0",
"typescript": "^3.3.1",
"vscode-debugadapter": "^1.33.0",
"vscode-debugprotocol": "^1.33.0",
"vscode-test": "^1.2.0",
"webpack": "^4.35.3",
"webpack-cli": "^3.3.6"
},
"dependencies": {
"@truffle/debug-utils": "1.0.19",
"@truffle/debugger": "5.0.35",
"@truffle/provider": "0.2.1",
"abi-decoder": "^2.0.1",
"acorn": "^6.1.1",
"acorn-walk": "^6.1.1",
"astring": "^1.4.0",
"azure-arm-resource": "^7.3.0",
"bip39": "^3.0.1",
"download": "^7.1.0",
"fs-extra": "^7.0.1",
"hdkey": "^1.1.1",
"ms-rest": "^2.5.0",
"ms-rest-azure": "^2.6.0",
"open": "^6.4.0",
"request": "^2.88.0",
"request-promise": "^4.2.4",
"semver": "^6.0.0",
"uuid": "^3.3.2",
"vscode-azureextensionui": "^0.25.1",
"vscode-extension-telemetry": "^0.1.1"
},
"extensionDependencies": [
"JuanBlanco.solidity",
"ms-vscode.azure-account"
],
"husky": {
"hooks": {
"pre-commit": "lint-staged && npm run compile"
}
},
"lint-staged": {
"*.ts": [
"npx tslint -t verbose",
"git add"
]
}
}