Skip to content

Commit 36522bc

Browse files
committed
Merge remote-tracking branch 'remotes/origin/fierce_fermion_6.2RC' into mainnet
2 parents 8493227 + 17d45b9 commit 36522bc

File tree

8 files changed

+83
-8
lines changed

8 files changed

+83
-8
lines changed

bvm/Shaders/dao-core-masternet/app.cpp

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -274,7 +274,16 @@ ON_METHOD(manager, prealloc_withdraw)
274274
fc.m_Amount = amount;
275275
fc.m_Consume = 0;
276276

277-
Env::GenerateKernel(&cid, arg.s_iMethod, &arg, sizeof(arg), &fc, 1, &sig, 1, "Get preallocated beamX tokens", 0);
277+
uint32_t nCharge =
278+
ManagerUpgadable2::get_ChargeInvoke() +
279+
Env::Cost::LoadVar_For(sizeof(DaoCore::Preallocated::User)) +
280+
Env::Cost::SaveVar_For(sizeof(DaoCore::Preallocated::User)) +
281+
Env::Cost::LoadVar_For(sizeof(DaoCore::State)) +
282+
Env::Cost::FundsLock +
283+
Env::Cost::AddSig +
284+
(Env::Cost::Cycle * 1000);
285+
286+
Env::GenerateKernel(&cid, arg.s_iMethod, &arg, sizeof(arg), &fc, 1, &sig, 1, "Get preallocated beamX tokens", nCharge);
278287
}
279288

280289
void GetFarmingState(const ContractID& cid, DaoCore::Farming::State& fs)
@@ -416,7 +425,18 @@ ON_METHOD(manager, farm_update)
416425
pFc[1].m_Amount = amountBeam;
417426
pFc[1].m_Consume = bLockOrUnlock;
418427

419-
Env::GenerateKernel(&cid, arg.s_iMethod, &arg, sizeof(arg), pFc, _countof(pFc), &sig, 1, "Lock/Unlock and get farmed beamX tokens", 0);
428+
uint32_t nCharge =
429+
ManagerUpgadable2::get_ChargeInvoke() +
430+
Env::Cost::LoadVar_For(sizeof(DaoCore::Farming::UserPos)) +
431+
Env::Cost::SaveVar_For(sizeof(DaoCore::Farming::UserPos)) +
432+
Env::Cost::LoadVar_For(sizeof(DaoCore::Farming::State)) +
433+
Env::Cost::SaveVar_For(sizeof(DaoCore::Farming::State)) +
434+
Env::Cost::LoadVar_For(sizeof(DaoCore::State)) +
435+
Env::Cost::FundsLock * 2 +
436+
Env::Cost::AddSig +
437+
(Env::Cost::Cycle * 2000);
438+
439+
Env::GenerateKernel(&cid, arg.s_iMethod, &arg, sizeof(arg), pFc, _countof(pFc), &sig, 1, "Lock/Unlock and get farmed beamX tokens", nCharge);
420440

421441
}
422442

4 Bytes
Binary file not shown.

bvm/Shaders/dao-core-testnet/app.cpp

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -274,7 +274,16 @@ ON_METHOD(manager, prealloc_withdraw)
274274
fc.m_Amount = amount;
275275
fc.m_Consume = 0;
276276

277-
Env::GenerateKernel(&cid, arg.s_iMethod, &arg, sizeof(arg), &fc, 1, &sig, 1, "Get preallocated beamX tokens", 0);
277+
uint32_t nCharge =
278+
ManagerUpgadable2::get_ChargeInvoke() +
279+
Env::Cost::LoadVar_For(sizeof(DaoCore::Preallocated::User)) +
280+
Env::Cost::SaveVar_For(sizeof(DaoCore::Preallocated::User)) +
281+
Env::Cost::LoadVar_For(sizeof(DaoCore::State)) +
282+
Env::Cost::FundsLock +
283+
Env::Cost::AddSig +
284+
(Env::Cost::Cycle * 1000);
285+
286+
Env::GenerateKernel(&cid, arg.s_iMethod, &arg, sizeof(arg), &fc, 1, &sig, 1, "Get preallocated beamX tokens", nCharge);
278287
}
279288

280289
void GetFarmingState(const ContractID& cid, DaoCore::Farming::State& fs)
@@ -416,7 +425,18 @@ ON_METHOD(manager, farm_update)
416425
pFc[1].m_Amount = amountBeam;
417426
pFc[1].m_Consume = bLockOrUnlock;
418427

419-
Env::GenerateKernel(&cid, arg.s_iMethod, &arg, sizeof(arg), pFc, _countof(pFc), &sig, 1, "Lock/Unlock and get farmed beamX tokens", 0);
428+
uint32_t nCharge =
429+
ManagerUpgadable2::get_ChargeInvoke() +
430+
Env::Cost::LoadVar_For(sizeof(DaoCore::Farming::UserPos)) +
431+
Env::Cost::SaveVar_For(sizeof(DaoCore::Farming::UserPos)) +
432+
Env::Cost::LoadVar_For(sizeof(DaoCore::Farming::State)) +
433+
Env::Cost::SaveVar_For(sizeof(DaoCore::Farming::State)) +
434+
Env::Cost::LoadVar_For(sizeof(DaoCore::State)) +
435+
Env::Cost::FundsLock * 2 +
436+
Env::Cost::AddSig +
437+
(Env::Cost::Cycle * 2000);
438+
439+
Env::GenerateKernel(&cid, arg.s_iMethod, &arg, sizeof(arg), pFc, _countof(pFc), &sig, 1, "Lock/Unlock and get farmed beamX tokens", nCharge);
420440

421441
}
422442

4 Bytes
Binary file not shown.

bvm/Shaders/dao-core/app.cpp

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -274,7 +274,16 @@ ON_METHOD(manager, prealloc_withdraw)
274274
fc.m_Amount = amount;
275275
fc.m_Consume = 0;
276276

277-
Env::GenerateKernel(&cid, arg.s_iMethod, &arg, sizeof(arg), &fc, 1, &sig, 1, "Get preallocated beamX tokens", 0);
277+
uint32_t nCharge =
278+
ManagerUpgadable2::get_ChargeInvoke() +
279+
Env::Cost::LoadVar_For(sizeof(DaoCore::Preallocated::User)) +
280+
Env::Cost::SaveVar_For(sizeof(DaoCore::Preallocated::User)) +
281+
Env::Cost::LoadVar_For(sizeof(DaoCore::State)) +
282+
Env::Cost::FundsLock +
283+
Env::Cost::AddSig +
284+
(Env::Cost::Cycle * 1000);
285+
286+
Env::GenerateKernel(&cid, arg.s_iMethod, &arg, sizeof(arg), &fc, 1, &sig, 1, "Get preallocated beamX tokens", nCharge);
278287
}
279288

280289
void GetFarmingState(const ContractID& cid, DaoCore::Farming::State& fs)
@@ -416,7 +425,18 @@ ON_METHOD(manager, farm_update)
416425
pFc[1].m_Amount = amountBeam;
417426
pFc[1].m_Consume = bLockOrUnlock;
418427

419-
Env::GenerateKernel(&cid, arg.s_iMethod, &arg, sizeof(arg), pFc, _countof(pFc), &sig, 1, "Lock/Unlock and get farmed beamX tokens", 0);
428+
uint32_t nCharge =
429+
ManagerUpgadable2::get_ChargeInvoke() +
430+
Env::Cost::LoadVar_For(sizeof(DaoCore::Farming::UserPos)) +
431+
Env::Cost::SaveVar_For(sizeof(DaoCore::Farming::UserPos)) +
432+
Env::Cost::LoadVar_For(sizeof(DaoCore::Farming::State)) +
433+
Env::Cost::SaveVar_For(sizeof(DaoCore::Farming::State)) +
434+
Env::Cost::LoadVar_For(sizeof(DaoCore::State)) +
435+
Env::Cost::FundsLock * 2 +
436+
Env::Cost::AddSig +
437+
(Env::Cost::Cycle * 2000);
438+
439+
Env::GenerateKernel(&cid, arg.s_iMethod, &arg, sizeof(arg), pFc, _countof(pFc), &sig, 1, "Lock/Unlock and get farmed beamX tokens", nCharge);
420440

421441
}
422442

bvm/Shaders/dao-core/app.wasm

4 Bytes
Binary file not shown.

bvm/Shaders/gallery/app.cpp

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -388,8 +388,23 @@ ON_METHOD(manager, upload)
388388
// - event for the data. This is 100 units per byte, plus 5K units per call, which is repeated for each 8K of data
389389
// - add some extra for other stuff
390390

391-
uint32_t nCharge = 90000;
392-
nCharge += nDataLen * 110;
391+
uint32_t nCharge =
392+
ManagerUpgadable2::get_ChargeInvoke() +
393+
Env::Cost::LoadVar_For(sizeof(Gallery::State)) +
394+
Env::Cost::SaveVar_For(sizeof(Gallery::State)) +
395+
Env::Cost::LoadVar_For(sizeof(Gallery::Artist)) +
396+
Env::Cost::SaveVar_For(sizeof(Gallery::Masterpiece)) +
397+
Env::Cost::AddSig +
398+
Env::Cost::Cycle * 200;
399+
400+
const uint32_t nSizeEvt = 0x2000;
401+
uint32_t nFullCycles = nDataLen / nSizeEvt;
402+
403+
nCharge += (Env::Cost::Log_For(nSizeEvt) + Env::Cost::Cycle * 50) * nFullCycles;
404+
405+
nDataLen %= nSizeEvt;
406+
if (nDataLen)
407+
nCharge += Env::Cost::Log_For(nDataLen) + Env::Cost::Cycle * 50;
393408

394409
Env::GenerateKernel(&cid, pArgs->s_iMethod, pArgs, nSizeArgs, nullptr, 0, &sig, 1, "Gallery upload masterpiece", nCharge);
395410

bvm/Shaders/gallery/app.wasm

26 Bytes
Binary file not shown.

0 commit comments

Comments
 (0)