Skip to content
This repository has been archived by the owner on Aug 6, 2021. It is now read-only.

Commit

Permalink
Merge branch 'master' into dev
Browse files Browse the repository at this point in the history
  • Loading branch information
jo-es committed Aug 11, 2020
2 parents 1378668 + 63c498c commit f5c3502
Show file tree
Hide file tree
Showing 12 changed files with 603 additions and 81 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ CNAME
# actus-solditiy, ap-contracts
build/
artifacts/
ts-bindings
mnemonic.js
ts-bindings/

Expand Down
4 changes: 2 additions & 2 deletions packages/actus-solidity/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@atpar/actus-solidity",
"version": "0.4.1",
"version": "0.4.2",
"description": "ACTUS smart contracts",
"author": "atpar AG",
"authors": [
Expand Down Expand Up @@ -66,7 +66,7 @@
"openzeppelin-test-helpers": "^0.1.2",
"solhint": "^3.0.0",
"solidity-coverage": "^0.7.4",
"truffle": "5.1.32",
"truffle": "5.1.36",
"truffle-hdwallet-provider": "^1.0.9",
"web3-utils": "^1.2.4"
}
Expand Down
183 changes: 155 additions & 28 deletions packages/actus-solidity/yarn.lock

Large diffs are not rendered by default.

47 changes: 47 additions & 0 deletions packages/ap-contracts/buidler.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,14 @@ task(TASK_COMPILE_GET_COMPILER_INPUT).setAction(async (_, __, runSuper) => {
return input;
});

function getMnemonic() {
try {
return require('./mnemonic.js');
} catch (error) {
return '';
}
}

module.exports = {
paths: {
artifacts: './test/artifacts'
Expand All @@ -24,6 +32,45 @@ module.exports = {
buidlerevm: {
allowUnlimitedContractSize: false,
initialDate: '2009-01-03T18:15:05' // for ACTUS test cases
},
'ap-chain': {
url: 'http://127.0.0.1:8545'
},
goerli: {
url: 'https://goerli.infura.io/v3/16b0bb612ec14abeb3617cff126ea5c0',
accounts: {
mnemonic: getMnemonic(),
path: "m/44'/60'/0'/0",
initialIndex: 0,
count: 5
}
},
kovan: {
url: 'https://kovan.infura.io/v3/16b0bb612ec14abeb3617cff126ea5c0',
accounts: {
mnemonic: getMnemonic(),
path: "m/44'/60'/0'/0",
initialIndex: 0,
count: 5
}
},
rinkeby: {
url: 'https://rinkeby.infura.io/v3/16b0bb612ec14abeb3617cff126ea5c0',
accounts: {
mnemonic: getMnemonic(),
path: "m/44'/60'/0'/0",
initialIndex: 0,
count: 5
}
},
ropsten: {
url: 'https://ropsten.infura.io/v3/16b0bb612ec14abeb3617cff126ea5c0',
accounts: {
mnemonic: getMnemonic(),
path: "m/44'/60'/0'/0",
initialIndex: 0,
count: 5
}
}
},
solc: {
Expand Down
20 changes: 20 additions & 0 deletions packages/ap-contracts/deployments.json
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,26 @@
"PAMRegistry": "0x3f44387a67D1A5964AD71e53A50B6DD58b68DA8d",
"DvPSettlement": "0xeB0871f6A18544Cf4E10B3B5721e9ebCe663476A"
},
"4": {
"ANNActor": "0x485F6f4d894181edF494EE04D8706bfb0CD8638c",
"ANNEngine": "0x74886a51f8C45bfAb4BB3687a57eE0e92f9521FF",
"ANNRegistry": "0x37355254Db7949266188dCf442aF2DbcdB623942",
"CECActor": "0x5d9A3b7ecCbc4007A3637dD2b4b20628d4F1aE47",
"CECEngine": "0x19485029DC45182c1F77cB5949ccE0eAA239EaF3",
"CECRegistry": "0xac8195B6CaaDC13fdDb9B1dBc7945dC6Ebf7220a",
"CEGActor": "0x9e4f14585904D4D7F88F38cE6cD2E064a2CA6e84",
"CEGEngine": "0x258046eBe6814B6e0F2EcD57B45BFB0349158086",
"CEGRegistry": "0x794c2b7f189cFCaC5CDA9a853aB6CcdC89F71ce9",
"CERTFActor": "0x8E040f8D5D08de732664484fF20e81374ad13f7A",
"CERTFEngine": "0x117FB101BfEEfD06AEa4E9055008A874BAB38bfc",
"CERTFRegistry": "0xB5952e4669dba8573767EbFD32FDD0B75cA8aDE9",
"Custodian": "0xA0269C0f1D9F2e06D3830660393c83E16A312566",
"FDTFactory": "0x79525FD849b747b831eBc90aE79b1E5C1070b5c4",
"DataRegistry": "0x5E60a45A004Dd1DB7AE1C9853fD89A66a2eB8898",
"PAMActor": "0xCcA2262D8F61AcE49D778744C16De5EDE6cc71B1",
"PAMEngine": "0xFB0ceDcF4CD7742505376B464ce9CBD94f77e8df",
"PAMRegistry": "0x5879c7BDD6D3E56073dF52229c152AB2054eF991"
},
"5": {
"ANNActor": "0xcBAdbc25f026507bB0F112dA6Ab5CC211B56dA3a",
"ANNEngine": "0x3A2290B9eDb77197d2685C5898A8f4dc5Ef8386C",
Expand Down
6 changes: 3 additions & 3 deletions packages/ap-contracts/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@atpar/ap-contracts",
"version": "0.4.1",
"version": "0.4.2",
"description": "ACTUS protocol smart contracts",
"author": "jo-es <johannes.escherich+github@atpar.io>",
"homepage": "https://github.com/atpar/ap-monorepo#readme",
Expand Down Expand Up @@ -53,8 +53,8 @@
"**/web3-eth-contract": "1.2.4"
},
"dependencies": {
"@atpar/actus-solidity": "0.4.1",
"@openzeppelin/contracts-ethereum-package": "^3.0.0",
"@atpar/actus-solidity": "0.4.2",
"openzeppelin-solidity": "^3.0.2",
"truffle-hdwallet-provider": "^1.0.9"
},
Expand All @@ -72,7 +72,7 @@
"openzeppelin-test-helpers": "^0.1.2",
"solhint": "^3.0.0",
"solidity-coverage": "^0.7.4",
"truffle": "5.1.32",
"truffle": "5.1.36",
"typechain": "^1.0.5",
"typechain-target-web3-v1": "^1.0.4",
"web3": "1.2.4"
Expand Down
155 changes: 155 additions & 0 deletions packages/ap-contracts/scripts/deploy-contracts.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,155 @@
const fs = require('fs');
const path = require('path');

const ANNEngine = artifacts.require('ANNEngine');
const CECEngine = artifacts.require('CECEngine');
const CEGEngine = artifacts.require('CEGEngine');
const CERTFEngine = artifacts.require('CERTFEngine');
const PAMEngine = artifacts.require('PAMEngine');

const ANNRegistry = artifacts.require('ANNRegistry');
const CECRegistry = artifacts.require('CECRegistry');
const CEGRegistry = artifacts.require('CEGRegistry');
const CERTFRegistry = artifacts.require('CERTFRegistry');
const PAMRegistry = artifacts.require('PAMRegistry');

const ANNEncoder = artifacts.require('ANNEncoder');
const CECEncoder = artifacts.require('CECEncoder');
const CEGEncoder = artifacts.require('CEGEncoder');
const CERTFEncoder = artifacts.require('CERTFEncoder');
const PAMEncoder = artifacts.require('PAMEncoder');

const ANNActor = artifacts.require('ANNActor');
const CECActor = artifacts.require('CECActor');
const CEGActor = artifacts.require('CEGActor');
const CERTFActor = artifacts.require('CERTFActor');
const PAMActor = artifacts.require('PAMActor');

const DataRegistry = artifacts.require('DataRegistry');
const Custodian = artifacts.require('Custodian');
const FDTFactory = artifacts.require('FDTFactory');

const SettlementToken = artifacts.require('SettlementToken');


(async () => {
// ACTUS-Solidity
console.log('Deploying ACTUS-Solidity');
const ANNEngineInstance = await ANNEngine.new();
ANNEngine.setAsDeployed(ANNEngineInstance);
const CECEngineInstance = await CECEngine.new();
CECEngine.setAsDeployed(CECEngineInstance);
const CEGEngineInstance = await CEGEngine.new();
CEGEngine.setAsDeployed(CEGEngineInstance);
const CERTFEngineInstance = await CERTFEngine.new();
CERTFEngine.setAsDeployed(CERTFEngineInstance);
const PAMEngineInstance = await PAMEngine.new();
PAMEngine.setAsDeployed(PAMEngineInstance);

// Asset Registry
const ANNEncoderInstance = await ANNEncoder.new();
ANNEncoder.setAsDeployed(ANNEncoderInstance);
const CECEncoderInstance = await CECEncoder.new();
CECEncoder.setAsDeployed(CECEncoderInstance);
const CEGEncoderInstance = await CEGEncoder.new();
CEGEncoder.setAsDeployed(CEGEncoderInstance);
const CERTFEncoderInstance = await CERTFEncoder.new();
CERTFEncoder.setAsDeployed(CERTFEncoderInstance);
const PAMEncoderInstance = await PAMEncoder.new();
PAMEncoder.setAsDeployed(PAMEncoderInstance);
await ANNRegistry.link(ANNEncoderInstance);
await CECRegistry.link(CECEncoderInstance);
await CEGRegistry.link(CEGEncoderInstance);
await CERTFRegistry.link(CERTFEncoderInstance);
await PAMRegistry.link(PAMEncoderInstance);
const ANNRegistryInstance = await ANNRegistry.new();
ANNRegistry.setAsDeployed(ANNRegistryInstance);
const CECRegistryInstance = await CECRegistry.new();
CECRegistry.setAsDeployed(CECRegistryInstance);
const CEGRegistryInstance = await CEGRegistry.new();
CEGRegistry.setAsDeployed(CEGRegistryInstance);
const CERTFRegistryInstance = await CERTFRegistry.new();
CERTFRegistry.setAsDeployed(CERTFRegistryInstance);
const PAMRegistryInstance = await PAMRegistry.new();
PAMRegistry.setAsDeployed(PAMRegistryInstance);

// Data Registry
const DataRegistryInstance = await DataRegistry.new();
DataRegistry.setAsDeployed(DataRegistryInstance);

// Asset Actor
const ANNActorInstance = await ANNActor.new(ANNRegistryInstance.address, DataRegistryInstance.address);
ANNActor.setAsDeployed(ANNActorInstance);
const CECActorInstance = await CECActor.new(CECRegistryInstance.address, DataRegistryInstance.address);
CECActor.setAsDeployed(CECActorInstance);
const CEGActorInstance = await CEGActor.new(CEGRegistryInstance.address, DataRegistryInstance.address);
CEGActor.setAsDeployed(CEGActorInstance);
const CERTFActorInstance = await CERTFActor.new(CERTFRegistryInstance.address, DataRegistryInstance.address);
CERTFActor.setAsDeployed(CERTFActorInstance);
const PAMActorInstance = await PAMActor.new(PAMRegistryInstance.address, DataRegistryInstance.address);
PAMActor.setAsDeployed(PAMActorInstance);

// Custodian
const CustodianInstance = await Custodian.new(
CECActorInstance.address,
CECRegistryInstance.address
);
Custodian.setAsDeployed(CustodianInstance);

// FDT
const FDTFactoryInstance = await FDTFactory.new();
FDTFactory.setAsDeployed(FDTFactoryInstance);


console.log(`
Deployments:
ANNActor: ${ANNActorInstance.address}
ANNEngine: ${ANNEngineInstance.address}
ANNRegistry: ${ANNRegistryInstance.address}
CECActor: ${CECActorInstance.address}
CECEngine: ${CECEngineInstance.address}
CECRegistry: ${CECRegistryInstance.address}
CEGActor: ${CEGActorInstance.address}
CEGEngine: ${CEGEngineInstance.address}
CEGRegistry: ${CEGRegistryInstance.address}
CERTFActor: ${CERTFActorInstance.address}
CERTFEngine: ${CERTFEngineInstance.address}
CERTFRegistry: ${CERTFRegistryInstance.address}
Custodian: ${CustodianInstance.address}
FDTFactory: ${FDTFactoryInstance.address}
DataRegistry: ${DataRegistryInstance.address}
PAMActor: ${PAMActorInstance.address}
PAMEngine: ${PAMEngineInstance.address}
PAMRegistry: ${PAMRegistryInstance.address}
`);

// deploy settlement token (necessary for registering templates on testnets)
const SettlementTokenInstance = await SettlementToken.new();
console.log(' Deployed Settlement Token: ' + SettlementTokenInstance.address);
console.log('');

// update address for ap-chain or goerli deployment
const deployments = JSON.parse(fs.readFileSync(path.resolve(__dirname, '../', 'deployments.json'), 'utf8'));
deployments[await web3.eth.net.getId()] = {
"ANNActor": ANNActorInstance.address,
"ANNEngine": ANNEngineInstance.address,
"ANNRegistry": ANNRegistryInstance.address,
"CECActor": CECActorInstance.address,
"CECEngine": CECEngineInstance.address,
"CECRegistry": CECRegistryInstance.address,
"CEGActor": CEGActorInstance.address,
"CEGEngine": CEGEngineInstance.address,
"CEGRegistry": CEGRegistryInstance.address,
"CERTFActor": CERTFActorInstance.address,
"CERTFEngine": CERTFEngineInstance.address,
"CERTFRegistry": CERTFRegistryInstance.address,
"Custodian": CustodianInstance.address,
"FDTFactory": FDTFactoryInstance.address,
"DataRegistry": DataRegistryInstance.address,
"PAMActor": PAMActorInstance.address,
"PAMEngine": PAMEngineInstance.address,
"PAMRegistry": PAMRegistryInstance.address,
}
fs.writeFileSync(path.resolve(__dirname, '../', 'deployments.json'), JSON.stringify(deployments, null, 2), 'utf8');
})();
1 change: 1 addition & 0 deletions packages/ap-contracts/scripts/setup-ap-chain.sh
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ ganache_pid=$!
sleep 1

npx --quiet truffle migrate --network ap-chain
# npx --quiet buidler run --network ap-chain scripts/deploy-contracts.js

echo "✓ ready"

Expand Down
Loading

0 comments on commit f5c3502

Please sign in to comment.