Skip to content

Commit d44e430

Browse files
Merge pull request #31 from skalenetwork/feature/update-precompiled-contract
use default address for submitCTX
2 parents 42cf53f + f0cdfcb commit d44e430

4 files changed

Lines changed: 34 additions & 14 deletions

File tree

.github/workflows/test.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ jobs:
5959

6060
- name: Run skaled container
6161
run: |
62-
export SKALED_RELEASE=5.1.0-develop.3-bite2
62+
export SKALED_RELEASE=5.1.0-develop.4-bite2
6363
echo "SKALED_RELEASE=$SKALED_RELEASE" >> $GITHUB_ENV
6464
shell: bash
6565

scripts/endpoint_by_container/data_dir/config.json

Lines changed: 30 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -196,16 +196,6 @@
196196
"startingBlock": "0x0"
197197
}
198198
},
199-
"0x0000000000000000000000000000000000000014": {
200-
"precompiled": {
201-
"name": "submitCTX",
202-
"linear": {
203-
"base": 15,
204-
"word": 0
205-
},
206-
"startingBlock": "0x0"
207-
}
208-
},
209199
"0x0000000000000000000000000000000000000016": {
210200
"precompiled": {
211201
"name": "fnReserved0x16",
@@ -245,6 +235,36 @@
245235
},
246236
"startingBlock": "0x0"
247237
}
238+
},
239+
"0x000000000000000000000000000000000000001B": {
240+
"precompiled": {
241+
"name": "submitCTX",
242+
"linear": {
243+
"base": 15,
244+
"word": 0
245+
},
246+
"startingBlock": "0x0"
247+
}
248+
},
249+
"0x000000000000000000000000000000000000001C": {
250+
"precompiled": {
251+
"name": "encryptECIES",
252+
"linear": {
253+
"base": 15,
254+
"word": 0
255+
},
256+
"startingBlock": "0x0"
257+
}
258+
},
259+
"0x000000000000000000000000000000000000001D": {
260+
"precompiled": {
261+
"name": "encryptTE",
262+
"linear": {
263+
"base": 15,
264+
"word": 0
265+
},
266+
"startingBlock": "0x0"
267+
}
248268
}
249269
},
250270
"skaleConfig": {

tests/Game.sol

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@ contract Game {
2020
bytes memory randomBytes = abi.encode(encrypted, plaintext);
2121
bytes memory input = abi.encode(randomNumber, randomBytes);
2222

23-
(bool success, bytes memory result) = address(0x14).staticcall(input);
24-
require(success, "0x14 call failed");
23+
(bool success, bytes memory result) = address(0x1b).staticcall(input);
24+
require(success, "0x1b call failed");
2525

2626
// Extract address from first 20 bytes of result and transfer
2727
address walletAddress = address(bytes20(result));

tests/test.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ async function getDecryptedTransactionData(endpoint, txHash) {
9999

100100
async function runSampleBITE2( providerUrl, chainID, INSECURE_ETH_PRIVATE_KEY ) {
101101
// deploy a contract
102-
const bytecode = "60806040526000600260006101000a81548160ff0219169083151502179055506000600355610fbe806100336000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c806305b8a7d71461006757806357983ac81461008557806365eebab2146100a157806366df7a65146100bf5780636db3f6b1146100db578063e94b059e146100e5575b600080fd5b61006f610101565b60405161007c9190610476565b60405180910390f35b61009f600480360381019061009a9190610500565b61010b565b005b6100a9610215565b6040516100b6919061059c565b60405180910390f35b6100d960048036038101906100d4919061060d565b61022c565b005b6100e361026e565b005b6100ff60048036038101906100fa919061060d565b61041b565b005b6000600354905090565b6000805b838390508110156101645783838281811061012d5761012c61065a565b5b905060200281019061013f9190610698565b81019061014c9190610727565b826101579190610783565b915080600101905061010f565b506000805b868690508110156101be578686828181106101875761018661065a565b5b90506020028101906101999190610698565b8101906101a69190610727565b826101b19190610783565b9150806001019050610169565b508060038190555060008183116101e05782826101db91906107b7565b6101ed565b81836101ec91906107b7565b5b905060658110600260006101000a81548160ff02191690831515021790555050505050505050565b6000600260009054906101000a900460ff16905090565b6001828290918060018154018082558091505060019003906000526020600020016000909192909192909192909192509182610269929190610a31565b505050565b6000620f4240622625a0424360405160200161028b929190610b22565b6040516020818303038152906040528051906020012060001c6102ae9190610b7d565b6102b89190610783565b90506000600160006040516020016102d1929190610d09565b6040516020818303038152906040529050600082826040516020016102f7929190610dd0565b6040516020818303038152906040529050600080601473ffffffffffffffffffffffffffffffffffffffff16836040516103319190610e3c565b600060405180830381855afa9150503d806000811461036c576040519150601f19603f3d011682016040523d82523d6000602084013e610371565b606091505b5091509150816103b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103ad90610eb0565b60405180910390fd5b6000816103c290610f21565b60601c90508073ffffffffffffffffffffffffffffffffffffffff166108fc646865cafa809081150290604051600060405180830381858888f19350505050158015610412573d6000803e3d6000fd5b50505050505050565b6000828290918060018154018082558091505060019003906000526020600020016000909192909192909192909192509182610458929190610a31565b505050565b6000819050919050565b6104708161045d565b82525050565b600060208201905061048b6000830184610467565b92915050565b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b60008083601f8401126104c0576104bf61049b565b5b8235905067ffffffffffffffff8111156104dd576104dc6104a0565b5b6020830191508360208202830111156104f9576104f86104a5565b5b9250929050565b6000806000806040858703121561051a57610519610491565b5b600085013567ffffffffffffffff81111561053857610537610496565b5b610544878288016104aa565b9450945050602085013567ffffffffffffffff81111561056757610566610496565b5b610573878288016104aa565b925092505092959194509250565b60008115159050919050565b61059681610581565b82525050565b60006020820190506105b1600083018461058d565b92915050565b60008083601f8401126105cd576105cc61049b565b5b8235905067ffffffffffffffff8111156105ea576105e96104a0565b5b602083019150836001820283011115610606576106056104a5565b5b9250929050565b6000806020838503121561062457610623610491565b5b600083013567ffffffffffffffff81111561064257610641610496565b5b61064e858286016105b7565b92509250509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600080fd5b600080fd5b600080fd5b600080833560016020038436030381126106b5576106b4610689565b5b80840192508235915067ffffffffffffffff8211156106d7576106d661068e565b5b6020830192506001820236038313156106f3576106f2610693565b5b509250929050565b6107048161045d565b811461070f57600080fd5b50565b600081359050610721816106fb565b92915050565b60006020828403121561073d5761073c610491565b5b600061074b84828501610712565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061078e8261045d565b91506107998361045d565b92508282019050808211156107b1576107b0610754565b5b92915050565b60006107c28261045d565b91506107cd8361045d565b92508282039050818111156107e5576107e4610754565b5b92915050565b600082905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061086c57607f821691505b60208210810361087f5761087e610825565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026108e77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826108aa565b6108f186836108aa565b95508019841693508086168417925050509392505050565b6000819050919050565b600061092e6109296109248461045d565b610909565b61045d565b9050919050565b6000819050919050565b61094883610913565b61095c61095482610935565b8484546108b7565b825550505050565b600090565b610971610964565b61097c81848461093f565b505050565b5b818110156109a057610995600082610969565b600181019050610982565b5050565b601f8211156109e5576109b681610885565b6109bf8461089a565b810160208510156109ce578190505b6109e26109da8561089a565b830182610981565b50505b505050565b600082821c905092915050565b6000610a08600019846008026109ea565b1980831691505092915050565b6000610a2183836109f7565b9150826002028217905092915050565b610a3b83836107eb565b67ffffffffffffffff811115610a5457610a536107f6565b5b610a5e8254610854565b610a698282856109a4565b6000601f831160018114610a985760008415610a86578287013590505b610a908582610a15565b865550610af8565b601f198416610aa686610885565b60005b82811015610ace57848901358255600182019150602085019450602081019050610aa9565b86831015610aeb5784890135610ae7601f8916826109f7565b8355505b6001600288020188555050505b50505050505050565b6000819050919050565b610b1c610b178261045d565b610b01565b82525050565b6000610b2e8285610b0b565b602082019150610b3e8284610b0b565b6020820191508190509392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000610b888261045d565b9150610b938361045d565b925082610ba357610ba2610b4e565b5b828206905092915050565b600081549050919050565b600082825260208201905092915050565b60008190508160005260206000209050919050565b600082825260208201905092915050565b60008154610bfd81610854565b610c078186610bdf565b94506001821660008114610c225760018114610c3857610c6b565b60ff198316865281151560200286019350610c6b565b610c4185610885565b60005b83811015610c6357815481890152600182019150602081019050610c44565b808801955050505b50505092915050565b6000610c808383610bf0565b905092915050565b6000600182019050919050565b6000610ca082610bae565b610caa8185610bb9565b935083602082028501610cbc85610bca565b8060005b85811015610cf757848403895281610cd88582610c74565b9450610ce383610c88565b925060208a01995050600181019050610cc0565b50829750879550505050505092915050565b60006040820190508181036000830152610d238185610c95565b90508181036020830152610d378184610c95565b90509392505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610d7a578082015181840152602081019050610d5f565b60008484015250505050565b6000601f19601f8301169050919050565b6000610da282610d40565b610dac8185610d4b565b9350610dbc818560208601610d5c565b610dc581610d86565b840191505092915050565b6000604082019050610de56000830185610467565b8181036020830152610df78184610d97565b90509392505050565b600081905092915050565b6000610e1682610d40565b610e208185610e00565b9350610e30818560208601610d5c565b80840191505092915050565b6000610e488284610e0b565b915081905092915050565b600082825260208201905092915050565b7f307831342063616c6c206661696c656400000000000000000000000000000000600082015250565b6000610e9a601083610e53565b9150610ea582610e64565b602082019050919050565b60006020820190508181036000830152610ec981610e8d565b9050919050565b6000819050602082019050919050565b60007fffffffffffffffffffffffffffffffffffffffff00000000000000000000000082169050919050565b6000610f188251610ee0565b80915050919050565b6000610f2c82610d40565b82610f3684610ed0565b9050610f4181610f0c565b92506014821015610f8157610f7c7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000836014036008026108aa565b831692505b505091905056fea264697066735822122029c025279c5f81dfae1cf012dd9ddfd20e0f6109c7a1276bceb8f338d784025664736f6c634300081f0033";
102+
const bytecode = "60806040526000600260006101000a81548160ff0219169083151502179055506000600355610fbe806100336000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c806305b8a7d71461006757806357983ac81461008557806365eebab2146100a157806366df7a65146100bf5780636db3f6b1146100db578063e94b059e146100e5575b600080fd5b61006f610101565b60405161007c9190610476565b60405180910390f35b61009f600480360381019061009a9190610500565b61010b565b005b6100a9610215565b6040516100b6919061059c565b60405180910390f35b6100d960048036038101906100d4919061060d565b61022c565b005b6100e361026e565b005b6100ff60048036038101906100fa919061060d565b61041b565b005b6000600354905090565b6000805b838390508110156101645783838281811061012d5761012c61065a565b5b905060200281019061013f9190610698565b81019061014c9190610727565b826101579190610783565b915080600101905061010f565b506000805b868690508110156101be578686828181106101875761018661065a565b5b90506020028101906101999190610698565b8101906101a69190610727565b826101b19190610783565b9150806001019050610169565b508060038190555060008183116101e05782826101db91906107b7565b6101ed565b81836101ec91906107b7565b5b905060658110600260006101000a81548160ff02191690831515021790555050505050505050565b6000600260009054906101000a900460ff16905090565b6001828290918060018154018082558091505060019003906000526020600020016000909192909192909192909192509182610269929190610a31565b505050565b6000620f4240622625a0424360405160200161028b929190610b22565b6040516020818303038152906040528051906020012060001c6102ae9190610b7d565b6102b89190610783565b90506000600160006040516020016102d1929190610d09565b6040516020818303038152906040529050600082826040516020016102f7929190610dd0565b6040516020818303038152906040529050600080601b73ffffffffffffffffffffffffffffffffffffffff16836040516103319190610e3c565b600060405180830381855afa9150503d806000811461036c576040519150601f19603f3d011682016040523d82523d6000602084013e610371565b606091505b5091509150816103b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103ad90610eb0565b60405180910390fd5b6000816103c290610f21565b60601c90508073ffffffffffffffffffffffffffffffffffffffff166108fc646865cafa809081150290604051600060405180830381858888f19350505050158015610412573d6000803e3d6000fd5b50505050505050565b6000828290918060018154018082558091505060019003906000526020600020016000909192909192909192909192509182610458929190610a31565b505050565b6000819050919050565b6104708161045d565b82525050565b600060208201905061048b6000830184610467565b92915050565b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b60008083601f8401126104c0576104bf61049b565b5b8235905067ffffffffffffffff8111156104dd576104dc6104a0565b5b6020830191508360208202830111156104f9576104f86104a5565b5b9250929050565b6000806000806040858703121561051a57610519610491565b5b600085013567ffffffffffffffff81111561053857610537610496565b5b610544878288016104aa565b9450945050602085013567ffffffffffffffff81111561056757610566610496565b5b610573878288016104aa565b925092505092959194509250565b60008115159050919050565b61059681610581565b82525050565b60006020820190506105b1600083018461058d565b92915050565b60008083601f8401126105cd576105cc61049b565b5b8235905067ffffffffffffffff8111156105ea576105e96104a0565b5b602083019150836001820283011115610606576106056104a5565b5b9250929050565b6000806020838503121561062457610623610491565b5b600083013567ffffffffffffffff81111561064257610641610496565b5b61064e858286016105b7565b92509250509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600080fd5b600080fd5b600080fd5b600080833560016020038436030381126106b5576106b4610689565b5b80840192508235915067ffffffffffffffff8211156106d7576106d661068e565b5b6020830192506001820236038313156106f3576106f2610693565b5b509250929050565b6107048161045d565b811461070f57600080fd5b50565b600081359050610721816106fb565b92915050565b60006020828403121561073d5761073c610491565b5b600061074b84828501610712565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061078e8261045d565b91506107998361045d565b92508282019050808211156107b1576107b0610754565b5b92915050565b60006107c28261045d565b91506107cd8361045d565b92508282039050818111156107e5576107e4610754565b5b92915050565b600082905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061086c57607f821691505b60208210810361087f5761087e610825565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026108e77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826108aa565b6108f186836108aa565b95508019841693508086168417925050509392505050565b6000819050919050565b600061092e6109296109248461045d565b610909565b61045d565b9050919050565b6000819050919050565b61094883610913565b61095c61095482610935565b8484546108b7565b825550505050565b600090565b610971610964565b61097c81848461093f565b505050565b5b818110156109a057610995600082610969565b600181019050610982565b5050565b601f8211156109e5576109b681610885565b6109bf8461089a565b810160208510156109ce578190505b6109e26109da8561089a565b830182610981565b50505b505050565b600082821c905092915050565b6000610a08600019846008026109ea565b1980831691505092915050565b6000610a2183836109f7565b9150826002028217905092915050565b610a3b83836107eb565b67ffffffffffffffff811115610a5457610a536107f6565b5b610a5e8254610854565b610a698282856109a4565b6000601f831160018114610a985760008415610a86578287013590505b610a908582610a15565b865550610af8565b601f198416610aa686610885565b60005b82811015610ace57848901358255600182019150602085019450602081019050610aa9565b86831015610aeb5784890135610ae7601f8916826109f7565b8355505b6001600288020188555050505b50505050505050565b6000819050919050565b610b1c610b178261045d565b610b01565b82525050565b6000610b2e8285610b0b565b602082019150610b3e8284610b0b565b6020820191508190509392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000610b888261045d565b9150610b938361045d565b925082610ba357610ba2610b4e565b5b828206905092915050565b600081549050919050565b600082825260208201905092915050565b60008190508160005260206000209050919050565b600082825260208201905092915050565b60008154610bfd81610854565b610c078186610bdf565b94506001821660008114610c225760018114610c3857610c6b565b60ff198316865281151560200286019350610c6b565b610c4185610885565b60005b83811015610c6357815481890152600182019150602081019050610c44565b808801955050505b50505092915050565b6000610c808383610bf0565b905092915050565b6000600182019050919050565b6000610ca082610bae565b610caa8185610bb9565b935083602082028501610cbc85610bca565b8060005b85811015610cf757848403895281610cd88582610c74565b9450610ce383610c88565b925060208a01995050600181019050610cc0565b50829750879550505050505092915050565b60006040820190508181036000830152610d238185610c95565b90508181036020830152610d378184610c95565b90509392505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015610d7a578082015181840152602081019050610d5f565b60008484015250505050565b6000601f19601f8301169050919050565b6000610da282610d40565b610dac8185610d4b565b9350610dbc818560208601610d5c565b610dc581610d86565b840191505092915050565b6000604082019050610de56000830185610467565b8181036020830152610df78184610d97565b90509392505050565b600081905092915050565b6000610e1682610d40565b610e208185610e00565b9350610e30818560208601610d5c565b80840191505092915050565b6000610e488284610e0b565b915081905092915050565b600082825260208201905092915050565b7f307831622063616c6c206661696c656400000000000000000000000000000000600082015250565b6000610e9a601083610e53565b9150610ea582610e64565b602082019050919050565b60006020820190508181036000830152610ec981610e8d565b9050919050565b6000819050602082019050919050565b60007fffffffffffffffffffffffffffffffffffffffff00000000000000000000000082169050919050565b6000610f188251610ee0565b80915050919050565b6000610f2c82610d40565b82610f3684610ed0565b9050610f4181610f0c565b92506014821015610f8157610f7c7fffffffffffffffffffffffffffffffffffffffff000000000000000000000000836014036008026108aa565b831692505b505091905056fea2646970667358221220cb77b7d354924c4ef781654ff6d186483a0d2ebf283b22656ed5b8a43a1edba364736f6c634300081f0033";
103103
const abi = '[ { "inputs": [], "stateMutability": "payable", "type": "constructor" }, { "inputs": [], "name": "decryptAndExecute", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "didUserWin", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getSumDecrypted", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes[]", "name": "decryptedArguments", "type": "bytes[]" }, { "internalType": "bytes[]", "name": "plaintextArguments", "type": "bytes[]" } ], "name": "onDecrypt", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes", "name": "_encrypted", "type": "bytes" } ], "name": "submitEncrypted", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes", "name": "_plaintext", "type": "bytes" } ], "name": "submitPlaintext", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]';
104104

105105
console.log("\n=== Starting BITE Sample 2: Smart Contract with Encrypted Data ===\n");

0 commit comments

Comments
 (0)