Skip to content

Commit

Permalink
feat: phase4 redis (#102)
Browse files Browse the repository at this point in the history
* chore: add new bee files to gitignore

* feat: add new bee files to bee cleanup

* chore: add libp2p_v2 keys

* refactor: remove version format check

* test: change failed chunk retrieval status code

* feat: add upgraded bytecodes

* feat: change contract migration

* chore: add generated json

* test: bump blockchain version

* build: bump solc version
  • Loading branch information
nugaon committed Oct 3, 2023
1 parent 1fea708 commit c6a6f7f
Show file tree
Hide file tree
Showing 9 changed files with 50 additions and 12 deletions.
9 changes: 9 additions & 0 deletions generator/contract-addresses.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{
"bzzToken": "0xe78A0F7E598Cc8b0Bb87894B0F60dD2a88d6a8Ab",
"swapPriceOrcale": "0x5b1869D9A4C187F2EAa108f3062412ecf0526b24",
"swapFactory": "0xCfEB869F69431e42cdB54A4F4f105C19C080A601",
"postage": "0x254dffcd3277C0b1660F6d42EFbB754edaBAbC2B",
"postagePriceOracle": "0xC89Ce4735882C9F0f0FE26686c53074E09B0D550",
"stakeRegistry": "0xD833215cBcc3f914bD1C9ece3EE7BF8B14f841bb",
"redistribution": "0x9561C133DD8580860B6b7E504bC5Aa500f0f06a7"
}
2 changes: 1 addition & 1 deletion generator/contracts/PostagePriceOracle.bytecode
Original file line number Diff line number Diff line change
@@ -1 +1 @@
0x61040060018190556101a06040526000608090815261042d60a05261041860c05261040860e052610100919091526103fd610120526103f7610140526103eb610160526103d46101805262000059906002906009620001b3565b5060038054600461ffff199091161763ffff00001916620400001760ff60201b191690553480156200008a57600080fd5b5060405162000d3738038062000d37833981016040819052620000ad9162000220565b620000ba600033620000ec565b600380546001600160a01b039092166501000000000002600160281b600160c81b031990921691909117905562000250565b620000f88282620000fc565b5050565b62000108828262000186565b620000f8576000828152602081815260408083206001600160a01b03851684529091529020805460ff1916600117905562000142620001af565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b3390565b828054828255906000526020600020908101928215620001f7579160200282015b82811115620001f7578251829061ffff16905591602001919060010190620001d4565b506200020592915062000209565b5090565b5b808211156200020557600081556001016200020a565b60006020828403121562000232578081fd5b81516001600160a01b038116811462000249578182fd5b9392505050565b610ad780620002606000396000f3fe608060405234801561001057600080fd5b506004361061010a5760003560e01c806391b7f5ed116100a2578063b187bd2611610071578063b187bd26146101ec578063d547741f146101f4578063e0632c6414610207578063f7b188a51461021c578063fb8d8101146102245761010a565b806391b7f5ed146101b657806391d14854146101c95780639d1b464a146101dc578063a217fddf146101e45761010a565b806336568abe116100de57806336568abe1461018057806372bf079e146101935780637f386b6c146101a65780638456cb59146101ae5761010a565b806280248f1461010f57806301ffc9a714610138578063248a9ca3146101585780632f2ff15d1461016b575b600080fd5b61012261011d3660046107f8565b61022c565b60405161012f9190610884565b60405180910390f35b61014b61014636600461084a565b61024d565b60405161012f9190610879565b6101226101663660046107f8565b610278565b61017e610179366004610810565b61028d565b005b61017e61018e366004610810565b6102d4565b61017e6101a13660046107f8565b610316565b6101226104cb565b61017e6104d1565b61017e6101c43660046107f8565b61050f565b61014b6101d7366004610810565b6105f3565b61012261061c565b610122610622565b61014b610627565b61017e610202366004610810565b610638565b61020f610660565b60405161012f919061088d565b61017e610678565b6101226106af565b6002818154811061023c57600080fd5b600091825260209091200154905081565b60006001600160e01b03198216637965db0b60e01b14806102725750610272826106d3565b92915050565b60009081526020819052604090206001015490565b6102a161029983610278565b6101d76106ec565b6102c65760405162461bcd60e51b81526004016102bd906108a1565b60405180910390fd5b6102d082826106f0565b5050565b6102dc6106ec565b6001600160a01b0316816001600160a01b03161461030c5760405162461bcd60e51b81526004016102bd906109d7565b6102d08282610775565b600354640100000000900460ff166104c8576103527f74b366a297145849fa9687e16ecad1e3a60cf84f6c2256ae73e20a9f76669804336105f3565b61036e5760405162461bcd60e51b81526004016102bd906108f0565b610400818061038f5760405162461bcd60e51b81526004016102bd90610977565b6003546000906103ab9061ffff62010000820481169116610a26565b90508061ffff168411156103c1578061ffff1691505b6000600283815481106103e457634e487b7160e01b600052603260045260246000fd5b9060005260206000200154905083600154826104009190610a6c565b61040a9190610a4c565b6001819055610400111561041f576104006001555b6003546001546040516391b7f5ed60e01b8152650100000000009092046001600160a01b0316916391b7f5ed9161045891600401610884565b600060405180830381600087803b15801561047257600080fd5b505af1158015610486573d6000803e3d6000fd5b505050507fae46785019700e30375a5d7b4f91e32f8060ef085111f896ebf889450aa2ab5a6001546040516104bb9190610884565b60405180910390a1505050505b50565b61040081565b6104dc6000336105f3565b6104f85760405162461bcd60e51b81526004016102bd906109a0565b6003805464ff000000001916640100000000179055565b61051a6000336105f3565b6105365760405162461bcd60e51b81526004016102bd906109a0565b600181905561040081101561054c576104006001555b6003546001546040516391b7f5ed60e01b8152650100000000009092046001600160a01b0316916391b7f5ed9161058591600401610884565b600060405180830381600087803b15801561059f57600080fd5b505af11580156105b3573d6000803e3d6000fd5b505050507fae46785019700e30375a5d7b4f91e32f8060ef085111f896ebf889450aa2ab5a6001546040516105e89190610884565b60405180910390a150565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b60015481565b600081565b600354640100000000900460ff1681565b61064461029983610278565b61030c5760405162461bcd60e51b81526004016102bd90610927565b6003546501000000000090046001600160a01b031681565b6106836000336105f3565b61069f5760405162461bcd60e51b81526004016102bd906109a0565b6003805464ff0000000019169055565b7f74b366a297145849fa9687e16ecad1e3a60cf84f6c2256ae73e20a9f7666980481565b6001600160e01b031981166301ffc9a760e01b14919050565b3390565b6106fa82826105f3565b6102d0576000828152602081815260408083206001600160a01b03851684529091529020805460ff191660011790556107316106ec565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b61077f82826105f3565b156102d0576000828152602081815260408083206001600160a01b03851684529091529020805460ff191690556107b46106ec565b6001600160a01b0316816001600160a01b0316837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45050565b600060208284031215610809578081fd5b5035919050565b60008060408385031215610822578081fd5b8235915060208301356001600160a01b038116811461083f578182fd5b809150509250929050565b60006020828403121561085b578081fd5b81356001600160e01b031981168114610872578182fd5b9392505050565b901515815260200190565b90815260200190565b6001600160a01b0391909116815260200190565b6020808252602f908201527f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60408201526e0818591b5a5b881d1bc819dc985b9d608a1b606082015260800190565b6020808252601d908201527f63616c6c6572206973206e6f7420612070726963652075706461746572000000604082015260600190565b60208082526030908201527f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60408201526f2061646d696e20746f207265766f6b6560801b606082015260800190565b6020808252600f908201526e756e6578706563746564207a65726f60881b604082015260600190565b60208082526017908201527f63616c6c6572206973206e6f74207468652061646d696e000000000000000000604082015260600190565b6020808252602f908201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560408201526e103937b632b9903337b91039b2b63360891b606082015260800190565b600061ffff808316818516808303821115610a4357610a43610a8b565b01949350505050565b600082610a6757634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615610a8657610a86610a8b565b500290565b634e487b7160e01b600052601160045260246000fdfea26469706673582212203fdd69a51240e0287fd11e69a02c2fb8f07c3033db0cffcd57f4b70107e27b7a64736f6c63430008010033
0x61040060018190556101a06040526000608090815261042d60a05261041860c05261040860e052610100919091526103fd610120526103f7610140526103eb610160526103d46101805262000059906002906009620001bd565b5060038054640100000000600461ffff199092169190911763ffff00001916620400001760ff60201b19161790553480156200009457600080fd5b5060405162000d4138038062000d41833981016040819052620000b7916200022a565b620000c4600033620000f6565b600380546001600160a01b039092166501000000000002600160281b600160c81b03199092169190911790556200025a565b62000102828262000106565b5050565b62000112828262000190565b62000102576000828152602081815260408083206001600160a01b03851684529091529020805460ff191660011790556200014c620001b9565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b3390565b82805482825590600052602060002090810192821562000201579160200282015b8281111562000201578251829061ffff16905591602001919060010190620001de565b506200020f92915062000213565b5090565b5b808211156200020f576000815560010162000214565b6000602082840312156200023c578081fd5b81516001600160a01b038116811462000253578182fd5b9392505050565b610ad7806200026a6000396000f3fe608060405234801561001057600080fd5b506004361061010a5760003560e01c806391b7f5ed116100a2578063b187bd2611610071578063b187bd26146101ec578063d547741f146101f4578063e0632c6414610207578063f7b188a51461021c578063fb8d8101146102245761010a565b806391b7f5ed146101b657806391d14854146101c95780639d1b464a146101dc578063a217fddf146101e45761010a565b806336568abe116100de57806336568abe1461018057806372bf079e146101935780637f386b6c146101a65780638456cb59146101ae5761010a565b806280248f1461010f57806301ffc9a714610138578063248a9ca3146101585780632f2ff15d1461016b575b600080fd5b61012261011d3660046107f8565b61022c565b60405161012f9190610884565b60405180910390f35b61014b61014636600461084a565b61024d565b60405161012f9190610879565b6101226101663660046107f8565b610278565b61017e610179366004610810565b61028d565b005b61017e61018e366004610810565b6102d4565b61017e6101a13660046107f8565b610316565b6101226104cb565b61017e6104d1565b61017e6101c43660046107f8565b61050f565b61014b6101d7366004610810565b6105f3565b61012261061c565b610122610622565b61014b610627565b61017e610202366004610810565b610638565b61020f610660565b60405161012f919061088d565b61017e610678565b6101226106af565b6002818154811061023c57600080fd5b600091825260209091200154905081565b60006001600160e01b03198216637965db0b60e01b14806102725750610272826106d3565b92915050565b60009081526020819052604090206001015490565b6102a161029983610278565b6101d76106ec565b6102c65760405162461bcd60e51b81526004016102bd906108a1565b60405180910390fd5b6102d082826106f0565b5050565b6102dc6106ec565b6001600160a01b0316816001600160a01b03161461030c5760405162461bcd60e51b81526004016102bd906109d7565b6102d08282610775565b600354640100000000900460ff166104c8576103527f74b366a297145849fa9687e16ecad1e3a60cf84f6c2256ae73e20a9f76669804336105f3565b61036e5760405162461bcd60e51b81526004016102bd906108f0565b610400818061038f5760405162461bcd60e51b81526004016102bd90610977565b6003546000906103ab9061ffff62010000820481169116610a26565b90508061ffff168411156103c1578061ffff1691505b6000600283815481106103e457634e487b7160e01b600052603260045260246000fd5b9060005260206000200154905083600154826104009190610a6c565b61040a9190610a4c565b6001819055610400111561041f576104006001555b6003546001546040516391b7f5ed60e01b8152650100000000009092046001600160a01b0316916391b7f5ed9161045891600401610884565b600060405180830381600087803b15801561047257600080fd5b505af1158015610486573d6000803e3d6000fd5b505050507fae46785019700e30375a5d7b4f91e32f8060ef085111f896ebf889450aa2ab5a6001546040516104bb9190610884565b60405180910390a1505050505b50565b61040081565b6104dc6000336105f3565b6104f85760405162461bcd60e51b81526004016102bd906109a0565b6003805464ff000000001916640100000000179055565b61051a6000336105f3565b6105365760405162461bcd60e51b81526004016102bd906109a0565b600181905561040081101561054c576104006001555b6003546001546040516391b7f5ed60e01b8152650100000000009092046001600160a01b0316916391b7f5ed9161058591600401610884565b600060405180830381600087803b15801561059f57600080fd5b505af11580156105b3573d6000803e3d6000fd5b505050507fae46785019700e30375a5d7b4f91e32f8060ef085111f896ebf889450aa2ab5a6001546040516105e89190610884565b60405180910390a150565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b60015481565b600081565b600354640100000000900460ff1681565b61064461029983610278565b61030c5760405162461bcd60e51b81526004016102bd90610927565b6003546501000000000090046001600160a01b031681565b6106836000336105f3565b61069f5760405162461bcd60e51b81526004016102bd906109a0565b6003805464ff0000000019169055565b7f74b366a297145849fa9687e16ecad1e3a60cf84f6c2256ae73e20a9f7666980481565b6001600160e01b031981166301ffc9a760e01b14919050565b3390565b6106fa82826105f3565b6102d0576000828152602081815260408083206001600160a01b03851684529091529020805460ff191660011790556107316106ec565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b61077f82826105f3565b156102d0576000828152602081815260408083206001600160a01b03851684529091529020805460ff191690556107b46106ec565b6001600160a01b0316816001600160a01b0316837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45050565b600060208284031215610809578081fd5b5035919050565b60008060408385031215610822578081fd5b8235915060208301356001600160a01b038116811461083f578182fd5b809150509250929050565b60006020828403121561085b578081fd5b81356001600160e01b031981168114610872578182fd5b9392505050565b901515815260200190565b90815260200190565b6001600160a01b0391909116815260200190565b6020808252602f908201527f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60408201526e0818591b5a5b881d1bc819dc985b9d608a1b606082015260800190565b6020808252601d908201527f63616c6c6572206973206e6f7420612070726963652075706461746572000000604082015260600190565b60208082526030908201527f416363657373436f6e74726f6c3a2073656e646572206d75737420626520616e60408201526f2061646d696e20746f207265766f6b6560801b606082015260800190565b6020808252600f908201526e756e6578706563746564207a65726f60881b604082015260600190565b60208082526017908201527f63616c6c6572206973206e6f74207468652061646d696e000000000000000000604082015260600190565b6020808252602f908201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560408201526e103937b632b9903337b91039b2b63360891b606082015260800190565b600061ffff808316818516808303821115610a4357610a43610a8b565b01949350505050565b600082610a6757634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615610a8657610a86610a8b565b500290565b634e487b7160e01b600052601160045260246000fdfea26469706673582212208a9553e6688c68a63f92f7d183c718a789b3a07737ae10e6b54213a0cec9e01364736f6c63430008010033
2 changes: 1 addition & 1 deletion generator/contracts/PostageStamp.bytecode

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion generator/contracts/Redistribution.bytecode

Large diffs are not rendered by default.

25 changes: 19 additions & 6 deletions generator/migrations/1_initial.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
const ERC20PresetMinterPauser = artifacts.require('ERC20PresetMinterPauser')
const FS = require('fs')
const Path = require('path')
const { saveContractAddresses } = require('../src/utils')

const NETWORK_ID = 4020

Expand All @@ -23,13 +24,15 @@ function getSimpleSwapFactoryBin(tokenAddress) {
return bin + tokenAddress
}

function getPostageStampBin(tokenAddress) {
function getPostageStampBin(tokenAddress, adminAddress, minimumBucketDepth = 16) {
const binPath = Path.join(__dirname, '..', 'contracts', 'PostageStamp.bytecode')
const bin = FS.readFileSync(binPath, 'utf8').toString()
tokenAddress = prefixedAddressParamToByteCode(tokenAddress)
adminAddress = prefixedAddressParamToByteCode(adminAddress)
minimumBucketDepth = intToByteCode(minimumBucketDepth)

//add tokenaddress for param to the end of the bytecode
return bin + tokenAddress
return bin + tokenAddress + minimumBucketDepth + adminAddress
}

function getPostagePriceOracleBin(tokenAddress) {
Expand Down Expand Up @@ -113,7 +116,7 @@ async function createSimpleSwapFactoryContract(creatorAccount, erc20ContractAddr
}

async function createPostageStampContract(creatorAccount, erc20ContractAddress) {
return createContract('PostageStamp', getPostageStampBin(erc20ContractAddress), creatorAccount)
return createContract('PostageStamp', getPostageStampBin(erc20ContractAddress, creatorAccount), creatorAccount)
}

async function createStakeRegistryContract(creatorAccount, erc20ContractAddress) {
Expand All @@ -137,16 +140,26 @@ module.exports = function (deployer, network, accounts) {
deployer.deploy(ERC20PresetMinterPauser, 'Swarm Token', 'BZZ').then(async () => {
const creatorAccount = accounts[0]
const erc20Address = ERC20PresetMinterPauser.address
await createSwapPriceOracleContract(creatorAccount)
await createSimpleSwapFactoryContract(creatorAccount, erc20Address)
const swapPriceOracleAddress = await createSwapPriceOracleContract(creatorAccount)
const swapFactoryAddress = await createSimpleSwapFactoryContract(creatorAccount, erc20Address)
const postageStampAddress = await createPostageStampContract(creatorAccount, erc20Address)
const postagePriceOracleAddress = await createPostagePriceOracleContract(creatorAccount, erc20Address)
const stakeRegistryAddress = await createStakeRegistryContract(creatorAccount, erc20Address)
await createRedistributionContract(
const redistributionAddress = await createRedistributionContract(
creatorAccount,
stakeRegistryAddress,
postageStampAddress,
postagePriceOracleAddress,
)

saveContractAddresses({
bzzToken: erc20Address,
swapPriceOrcale: swapPriceOracleAddress,
swapFactory: swapFactoryAddress,
postage: postageStampAddress,
postagePriceOracle: postagePriceOracleAddress,
stakeRegistry: stakeRegistryAddress,
redistribution: redistributionAddress,
})
})
}
2 changes: 1 addition & 1 deletion generator/scripts/.env
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
BEE_VERSION="1.11.1"
BLOCKCHAIN_VERSION="1.3.0"
BLOCKCHAIN_VERSION="1.4.0"
BEE_ENV_PREFIX="fdp-play"
BEE_IMAGE_PREFIX="fairdatasociety"
COMMIT_VERSION_TAG="false"
Expand Down
16 changes: 16 additions & 0 deletions generator/src/utils.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
const FS = require('fs')
const Path = require('path')
const contractAddressesPath = Path.join(__dirname, '..', 'contract-addresses.json')

function saveContractAddresses(jsonData) {
FS.writeFileSync(contractAddressesPath, JSON.stringify(jsonData, null, 2))
}

function loadContractAddresses() {
return JSON.parse(FS.readFileSync(contractAddressesPath))
}

module.exports = {
saveContractAddresses,
loadContractAddresses,
}
2 changes: 1 addition & 1 deletion generator/truffle-config.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ module.exports = {

compilers: {
solc: {
version: '0.8.1', // Fetch exact version from solc-bin (default: truffle's version)
version: '0.8.19', // Fetch exact version from solc-bin (default: truffle's version)
docker: true,
settings: {
optimizer: {
Expand Down
2 changes: 1 addition & 1 deletion tsconfig.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"exclude": ["node_modules", "dist"],
"exclude": ["node_modules", "dist", "generator"],
"compilerOptions": {
"alwaysStrict": true,
"esModuleInterop": true,
Expand Down

0 comments on commit c6a6f7f

Please sign in to comment.