Skip to content

Commit

Permalink
Fix prologue gas token error
Browse files Browse the repository at this point in the history
  • Loading branch information
sanlee42 committed Oct 14, 2022
1 parent daa971f commit 3c58061
Show file tree
Hide file tree
Showing 14 changed files with 45 additions and 40 deletions.
Binary file modified build/StarcoinFramework/bytecode_modules/Oracle.mv
Binary file not shown.
Binary file modified build/StarcoinFramework/bytecode_modules/TransactionManager.mv
Binary file not shown.
2 changes: 1 addition & 1 deletion build/StarcoinFramework/docs/TransactionManager.md
Original file line number Diff line number Diff line change
Expand Up @@ -158,7 +158,7 @@ It verifies:
// specified by the transaction
<b>assert</b>!(<a href="ChainId.md#0x1_ChainId_get">ChainId::get</a>() == chain_id, <a href="Errors.md#0x1_Errors_invalid_argument">Errors::invalid_argument</a>(<a href="TransactionManager.md#0x1_TransactionManager_EPROLOGUE_BAD_CHAIN_ID">EPROLOGUE_BAD_CHAIN_ID</a>));
<b>let</b> (stc_price,scaling_factor)= <b>if</b> (!<a href="STC.md#0x1_STC_is_stc">STC::is_stc</a>&lt;TokenType&gt;()){
(<a href="GasOracleProposalPlugin.md#0x1_GasOracleProposalPlugin_gas_oracle_read">GasOracleProposalPlugin::gas_oracle_read</a>&lt;<a href="StarcoinDAO.md#0x1_StarcoinDAO">StarcoinDAO</a>, STCToken&lt;TokenType&gt;&gt;(),<a href="Oracle.md#0x1_GasOracle_get_scaling_factor">GasOracle::get_scaling_factor</a>&lt;TokenType&gt;())
(<a href="GasOracleProposalPlugin.md#0x1_GasOracleProposalPlugin_gas_oracle_read">GasOracleProposalPlugin::gas_oracle_read</a>&lt;<a href="StarcoinDAO.md#0x1_StarcoinDAO">StarcoinDAO</a>, TokenType&gt;(),<a href="Oracle.md#0x1_GasOracle_get_scaling_factor">GasOracle::get_scaling_factor</a>&lt;TokenType&gt;())
}<b>else</b>{
(1,1)
};
Expand Down
Binary file modified build/StarcoinFramework/source_maps/Oracle.mvsm
Binary file not shown.
Binary file modified build/StarcoinFramework/source_maps/PriceOracle.mvsm
Binary file not shown.
Binary file modified build/StarcoinFramework/source_maps/PriceOracleAggregator.mvsm
Binary file not shown.
Binary file modified build/StarcoinFramework/source_maps/PriceOracleScripts.mvsm
Binary file not shown.
Binary file modified build/StarcoinFramework/source_maps/STCUSDOracle.mvsm
Binary file not shown.
Binary file modified build/StarcoinFramework/source_maps/TransactionManager.mvsm
Binary file not shown.
34 changes: 20 additions & 14 deletions integration-tests/daospaceplugin/gas_oracle_plugin.exp
Original file line number Diff line number Diff line change
@@ -1,64 +1,70 @@
processed 27 tasks

task 6 'run'. lines 79-87:
task 5 'run'. lines 67-75:
{
"gas_used": 105455,
"gas_used": 43598,
"status": "Executed"
}

task 7 'run'. lines 89-98:
task 6 'run'. lines 77-85:
{
"gas_used": 74601,
"status": "Executed"
}

task 7 'run'. lines 87-96:
{
"gas_used": 1259689,
"status": "Executed"
}

task 9 'run'. lines 102-116:
task 9 'run'. lines 100-114:
{
"gas_used": 373579,
"status": "Executed"
}

task 13 'run'. lines 124-135:
task 13 'run'. lines 122-133:
{
"gas_used": 101440,
"status": "Executed"
}

task 16 'run'. lines 142-151:
task 16 'run'. lines 140-149:
{
"gas_used": 575872,
"status": "Executed"
}

task 17 'run'. lines 154-179:
task 17 'run'. lines 152-177:
{
"gas_used": 449602,
"status": "Executed"
}

task 19 'call'. lines 183-183:
task 19 'call'. lines 181-181:
"0xa7dcef9aef26202fce82a7c7d6672afb/1/0x00000000000000000000000000000001::IdentifierNFT::IdentifierNFT<0x00000000000000000000000000000001::DAOSpace::DAOMember<0x662ba5a1a1da0f1c70a9762c7eeb7aaf::XDAO::XDAO>,0x00000000000000000000000000000001::DAOSpace::DAOMemberBody<0x662ba5a1a1da0f1c70a9762c7eeb7aaf::XDAO::XDAO>>"

task 21 'run'. lines 187-202:
task 21 'run'. lines 185-200:
{
"gas_used": 7794857,
"status": "Executed"
}

task 23 'run'. lines 206-219:
task 23 'run'. lines 204-217:
{
"gas_used": 173636,
"status": "Executed"
}

task 24 'run'. lines 221-229:
task 24 'run'. lines 219-227:
{
"gas_used": 45286,
"gas_used": 45306,
"status": "Executed"
}

task 26 'run'. lines 234-251:
task 26 'run'. lines 232-249:
{
"gas_used": 582817,
"gas_used": 583131,
"status": "Executed"
}
20 changes: 9 additions & 11 deletions integration-tests/daospaceplugin/gas_oracle_plugin.move
Original file line number Diff line number Diff line change
Expand Up @@ -64,24 +64,22 @@ module alice::Token {
}
// check: EXECUTED

//# publish
module alice::Oracle {
use alice::Token::AliceToken;
//# run --signers alice
script {
use StarcoinFramework::GasOracle;

public fun initialize(account: &signer) {
GasOracle::register<AliceToken>(account, 9);
GasOracle::init_data_source<AliceToken>(account, 0);
use alice::Token::AliceToken;
fun main(account: signer) {
GasOracle::register<AliceToken>(account,9);
}
}
// check: EXECUTED

//# run --signers alice
script {
use alice::Oracle;

use StarcoinFramework::GasOracle;
use alice::Token::AliceToken;
fun main(account: signer) {
Oracle::initialize(&account);
GasOracle::init_data_source<AliceToken>(account,0);
}
}
// check: EXECUTED
Expand Down Expand Up @@ -224,7 +222,7 @@ script {
use StarcoinFramework::GasOracle;

fun main(account: signer) {
GasOracle::update<AliceToken>(&account, 100);
GasOracle::update<AliceToken>(account, 100);
}
}

Expand Down
10 changes: 5 additions & 5 deletions integration-tests/oracle/oracle.exp
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ task 7 'run'. lines 36-47:

task 8 'run'. lines 49-61:
{
"gas_used": 37189,
"gas_used": 38445,
"status": "Executed"
}

Expand All @@ -32,13 +32,13 @@ task 10 'run'. lines 66-73:

task 11 'run'. lines 76-84:
{
"gas_used": 19877,
"gas_used": 20505,
"status": "Executed"
}

task 13 'run'. lines 89-103:
{
"gas_used": 77033,
"gas_used": 77661,
"status": {
"MoveAbort": {
"location": {
Expand All @@ -54,7 +54,7 @@ task 13 'run'. lines 89-103:

task 14 'run'. lines 106-120:
{
"gas_used": 77033,
"gas_used": 77661,
"status": {
"MoveAbort": {
"location": {
Expand Down Expand Up @@ -98,6 +98,6 @@ task 18 'run'. lines 169-178:

task 19 'run'. lines 180-189:
{
"gas_used": 14158,
"gas_used": 14472,
"status": "Executed"
}
16 changes: 9 additions & 7 deletions sources/Oracle.move
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ module Oracle {
const ERR_NO_UPDATE_CAPABILITY: u64 = 102;
const ERR_NO_DATA_SOURCE: u64 = 103;
const ERR_CAPABILITY_ACCOUNT_MISS_MATCH: u64 = 104;

const ERR_NO_ORACLE_FEED:u64 =105;
/// deprecated.
public fun initialize(_sender: &signer) {
}
Expand Down Expand Up @@ -143,12 +143,14 @@ module Oracle {

/// Read the Oracle's value from `ds_addr`
public fun read<OracleT:copy+store+drop, ValueT: copy+store+drop>(ds_addr: address): ValueT acquires OracleFeed{
assert!(exists<OracleFeed<OracleT,ValueT>>(ds_addr), Errors::invalid_state(ERR_NO_ORACLE_FEED));
let oracle_feed = borrow_global<OracleFeed<OracleT, ValueT>>(ds_addr);
*&oracle_feed.record.value
}

/// Read the Oracle's DataRecord from `ds_addr`
public fun read_record<OracleT:copy+store+drop, ValueT: copy+store+drop>(ds_addr: address): DataRecord<ValueT> acquires OracleFeed{
assert!(exists<OracleFeed<OracleT,ValueT>>(ds_addr), Errors::invalid_state(ERR_NO_ORACLE_FEED));
let oracle_feed = borrow_global<OracleFeed<OracleT, ValueT>>(ds_addr);
*&oracle_feed.record
}
Expand Down Expand Up @@ -257,16 +259,16 @@ module GasOracle {
struct STCToken<phantom TokenType:store> has copy, store, drop {
}

public fun register<TokenType:store>(sender: &signer, precision: u8){
PriceOracle::register_oracle<STCToken<TokenType>>(sender, precision);
public(script) fun register<TokenType:store>(sender: signer, precision: u8){
PriceOracle::register_oracle<STCToken<TokenType>>(&sender, precision);
}

public fun init_data_source<TokenType: store>(sender: &signer, init_value: u128){
PriceOracle::init_data_source<STCToken<TokenType>>(sender, init_value);
public(script) fun init_data_source<TokenType: store>(sender: signer, init_value: u128){
PriceOracle::init_data_source<STCToken<TokenType>>(&sender, init_value);
}

public fun update<TokenType:store>(sender: &signer, value: u128){
PriceOracle::update<STCToken<TokenType>>(sender, value);
public(script) fun update<TokenType:store>(sender: signer, value: u128){
PriceOracle::update<STCToken<TokenType>>(&sender, value);
}
public fun get_scaling_factor<TokenType: store>(): u128 {
PriceOracle::get_scaling_factor<STCToken<TokenType>>()
Expand Down
3 changes: 1 addition & 2 deletions sources/TransactionManager.move
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@ module TransactionManager {
use StarcoinFramework::Epoch;
use StarcoinFramework::Hash;
use StarcoinFramework::Vector;
use StarcoinFramework::GasOracle::STCToken;
use StarcoinFramework::StarcoinDAO::StarcoinDAO;
use StarcoinFramework::GasOracleProposalPlugin;
use StarcoinFramework::STC;
Expand Down Expand Up @@ -68,7 +67,7 @@ module TransactionManager {
// specified by the transaction
assert!(ChainId::get() == chain_id, Errors::invalid_argument(EPROLOGUE_BAD_CHAIN_ID));
let (stc_price,scaling_factor)= if (!STC::is_stc<TokenType>()){
(GasOracleProposalPlugin::gas_oracle_read<StarcoinDAO, STCToken<TokenType>>(),GasOracle::get_scaling_factor<TokenType>())
(GasOracleProposalPlugin::gas_oracle_read<StarcoinDAO, TokenType>(),GasOracle::get_scaling_factor<TokenType>())
}else{
(1,1)
};
Expand Down

0 comments on commit 3c58061

Please sign in to comment.