Skip to content

Commit

Permalink
Fix set rola key when securifying entities
Browse files Browse the repository at this point in the history
  • Loading branch information
micbakos-rdx committed Jan 30, 2025
1 parent ba75143 commit bf788d9
Show file tree
Hide file tree
Showing 8 changed files with 116 additions and 66 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,20 @@ impl TransactionManifestSecurifyUnsecurifiedEntity for TransactionManifest {
security_structure_of_factor_instances
.assert_has_entity_kind(entity_address.get_entity_kind())?;

// Securify the entity which will return an entity owner badge onto the worktop.
let (mut builder, owner_badge_bucket) = Self::put_owner_badge_in_bucket(
ScryptoTransactionManifestBuilder::new(),
&unsecurified_entity,
);

// Obtain the badge for rola key
let owner_badge_proof = "rola_key_proof";
builder = builder.create_proof_from_bucket_of_all(
owner_badge_bucket,
owner_badge_proof,
);
builder = builder.push_to_auth_zone(owner_badge_proof);

// Set Rola Key
builder = TransactionManifest::set_rola_key(
builder,
Expand All @@ -42,12 +56,6 @@ impl TransactionManifestSecurifyUnsecurifiedEntity for TransactionManifest {
&entity_address,
);

// Securify the entity which will return an entity owner badge onto the worktop.
let (mut builder, owner_badge_bucket) = Self::put_owner_badge_in_bucket(
ScryptoTransactionManifestBuilder::new(),
&unsecurified_entity,
);

// Create an access controller for the entity.
builder = {
let access_controller_reservation_identifier =
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
{
"transactions": [
{
"transactionManifest": "CALL_METHOD\n Address(\"account_rdx128mh2ae9dsrwa0t8l37ayjrxxf0p84e6qm227ytxtcu447f5uw5m8w\")\n \"securify\"\n;\nTAKE_FROM_WORKTOP\n Address(\"resource_rdx1nfxxxxxxxxxxaccwnrxxxxxxxxx006664022062xxxxxxxxxaccwnr\")\n Decimal(\"1\")\n Bucket(\"bucket1\")\n;\nALLOCATE_GLOBAL_ADDRESS\n Address(\"package_rdx1pkgxxxxxxxxxcntrlrxxxxxxxxx000648572295xxxxxxxxxcntrlr\")\n \"AccessController\"\n AddressReservation(\"reservation1\")\n NamedAddress(\"address1\")\n;\nCREATE_ACCESS_CONTROLLER\n Bucket(\"bucket1\")\n Tuple(\n Enum<2u8>(\n Enum<1u8>(\n Array<Enum>(\n Enum<0u8>(\n Enum<2u8>(\n 0u8,\n Array<Enum>()\n )\n ),\n Enum<0u8>(\n Enum<4u8>(\n Array<Enum>(\n Enum<0u8>(\n NonFungibleGlobalId(\"resource_rdx1nfxxxxxxxxxxed25sgxxxxxxxxx002236757237xxxxxxxxxed25sg:[0e8695a4117774464ca04bb6d10ce0b11aede12bd797dcdee811067094]\")\n )\n )\n )\n )\n )\n )\n ),\n Enum<2u8>(\n Enum<1u8>(\n Array<Enum>(\n Enum<0u8>(\n Enum<2u8>(\n 0u8,\n Array<Enum>()\n )\n ),\n Enum<0u8>(\n Enum<4u8>(\n Array<Enum>(\n Enum<0u8>(\n NonFungibleGlobalId(\"resource_rdx1nfxxxxxxxxxxed25sgxxxxxxxxx002236757237xxxxxxxxxed25sg:[0e8695a4117774464ca04bb6d10ce0b11aede12bd797dcdee811067094]\")\n )\n )\n )\n )\n )\n )\n ),\n Enum<2u8>(\n Enum<1u8>(\n Array<Enum>(\n Enum<0u8>(\n Enum<2u8>(\n 0u8,\n Array<Enum>()\n )\n ),\n Enum<0u8>(\n Enum<4u8>(\n Array<Enum>(\n Enum<0u8>(\n NonFungibleGlobalId(\"resource_rdx1nfxxxxxxxxxxed25sgxxxxxxxxx002236757237xxxxxxxxxed25sg:[0e8695a4117774464ca04bb6d10ce0b11aede12bd797dcdee811067094]\")\n )\n )\n )\n )\n )\n )\n )\n )\n Enum<1u8>(\n 20160u32\n )\n Enum<1u8>(\n AddressReservation(\"reservation1\")\n )\n;\nSET_METADATA\n Address(\"account_rdx128mh2ae9dsrwa0t8l37ayjrxxf0p84e6qm227ytxtcu447f5uw5m8w\")\n \"owner_keys\"\n Enum<143u8>(\n Array<Enum>(\n Enum<1u8>(\n Bytes(\"8e7da995687de79d87a51e4acadccbeea15df2b165800247930298bc16\")\n )\n )\n )\n;\n",
"transactionManifest": "CALL_METHOD\n Address(\"account_rdx128mh2ae9dsrwa0t8l37ayjrxxf0p84e6qm227ytxtcu447f5uw5m8w\")\n \"securify\"\n;\nTAKE_FROM_WORKTOP\n Address(\"resource_rdx1nfxxxxxxxxxxaccwnrxxxxxxxxx006664022062xxxxxxxxxaccwnr\")\n Decimal(\"1\")\n Bucket(\"bucket1\")\n;\nCREATE_PROOF_FROM_BUCKET_OF_ALL\n Bucket(\"bucket1\")\n Proof(\"proof1\")\n;\nPUSH_TO_AUTH_ZONE\n Proof(\"proof1\")\n;\nSET_METADATA\n Address(\"account_rdx128mh2ae9dsrwa0t8l37ayjrxxf0p84e6qm227ytxtcu447f5uw5m8w\")\n \"owner_keys\"\n Enum<143u8>(\n Array<Enum>(\n Enum<1u8>(\n Bytes(\"8e7da995687de79d87a51e4acadccbeea15df2b165800247930298bc16\")\n )\n )\n )\n;\nALLOCATE_GLOBAL_ADDRESS\n Address(\"package_rdx1pkgxxxxxxxxxcntrlrxxxxxxxxx000648572295xxxxxxxxxcntrlr\")\n \"AccessController\"\n AddressReservation(\"reservation1\")\n NamedAddress(\"address1\")\n;\nCREATE_ACCESS_CONTROLLER\n Bucket(\"bucket1\")\n Tuple(\n Enum<2u8>(\n Enum<1u8>(\n Array<Enum>(\n Enum<0u8>(\n Enum<2u8>(\n 0u8,\n Array<Enum>()\n )\n ),\n Enum<0u8>(\n Enum<4u8>(\n Array<Enum>(\n Enum<0u8>(\n NonFungibleGlobalId(\"resource_rdx1nfxxxxxxxxxxed25sgxxxxxxxxx002236757237xxxxxxxxxed25sg:[0e8695a4117774464ca04bb6d10ce0b11aede12bd797dcdee811067094]\")\n )\n )\n )\n )\n )\n )\n ),\n Enum<2u8>(\n Enum<1u8>(\n Array<Enum>(\n Enum<0u8>(\n Enum<2u8>(\n 0u8,\n Array<Enum>()\n )\n ),\n Enum<0u8>(\n Enum<4u8>(\n Array<Enum>(\n Enum<0u8>(\n NonFungibleGlobalId(\"resource_rdx1nfxxxxxxxxxxed25sgxxxxxxxxx002236757237xxxxxxxxxed25sg:[0e8695a4117774464ca04bb6d10ce0b11aede12bd797dcdee811067094]\")\n )\n )\n )\n )\n )\n )\n ),\n Enum<2u8>(\n Enum<1u8>(\n Array<Enum>(\n Enum<0u8>(\n Enum<2u8>(\n 0u8,\n Array<Enum>()\n )\n ),\n Enum<0u8>(\n Enum<4u8>(\n Array<Enum>(\n Enum<0u8>(\n NonFungibleGlobalId(\"resource_rdx1nfxxxxxxxxxxed25sgxxxxxxxxx002236757237xxxxxxxxxed25sg:[0e8695a4117774464ca04bb6d10ce0b11aede12bd797dcdee811067094]\")\n )\n )\n )\n )\n )\n )\n )\n )\n Enum<1u8>(\n 20160u32\n )\n Enum<1u8>(\n AddressReservation(\"reservation1\")\n )\n;\n",
"blobs": []
},
{
"transactionManifest": "CALL_METHOD\n Address(\"identity_rdx122kkqj7pc04gwsgcwsxmfmknlsg4qpz52rrs6vj72cujks4ukw993v\")\n \"securify\"\n;\nTAKE_FROM_WORKTOP\n Address(\"resource_rdx1nfxxxxxxxxxxdntwnrxxxxxxxxx002876444928xxxxxxxxxdntwnr\")\n Decimal(\"1\")\n Bucket(\"bucket1\")\n;\nALLOCATE_GLOBAL_ADDRESS\n Address(\"package_rdx1pkgxxxxxxxxxcntrlrxxxxxxxxx000648572295xxxxxxxxxcntrlr\")\n \"AccessController\"\n AddressReservation(\"reservation1\")\n NamedAddress(\"address1\")\n;\nCREATE_ACCESS_CONTROLLER\n Bucket(\"bucket1\")\n Tuple(\n Enum<2u8>(\n Enum<1u8>(\n Array<Enum>(\n Enum<0u8>(\n Enum<2u8>(\n 0u8,\n Array<Enum>()\n )\n ),\n Enum<0u8>(\n Enum<4u8>(\n Array<Enum>(\n Enum<0u8>(\n NonFungibleGlobalId(\"resource_rdx1nfxxxxxxxxxxed25sgxxxxxxxxx002236757237xxxxxxxxxed25sg:[0b5896b1b5a1de8573b3a90216e7b14b42aa11746ad2e0bcb0741c216d]\")\n )\n )\n )\n )\n )\n )\n ),\n Enum<2u8>(\n Enum<1u8>(\n Array<Enum>(\n Enum<0u8>(\n Enum<2u8>(\n 0u8,\n Array<Enum>()\n )\n ),\n Enum<0u8>(\n Enum<4u8>(\n Array<Enum>(\n Enum<0u8>(\n NonFungibleGlobalId(\"resource_rdx1nfxxxxxxxxxxed25sgxxxxxxxxx002236757237xxxxxxxxxed25sg:[0b5896b1b5a1de8573b3a90216e7b14b42aa11746ad2e0bcb0741c216d]\")\n )\n )\n )\n )\n )\n )\n ),\n Enum<2u8>(\n Enum<1u8>(\n Array<Enum>(\n Enum<0u8>(\n Enum<2u8>(\n 0u8,\n Array<Enum>()\n )\n ),\n Enum<0u8>(\n Enum<4u8>(\n Array<Enum>(\n Enum<0u8>(\n NonFungibleGlobalId(\"resource_rdx1nfxxxxxxxxxxed25sgxxxxxxxxx002236757237xxxxxxxxxed25sg:[0b5896b1b5a1de8573b3a90216e7b14b42aa11746ad2e0bcb0741c216d]\")\n )\n )\n )\n )\n )\n )\n )\n )\n Enum<1u8>(\n 20160u32\n )\n Enum<1u8>(\n AddressReservation(\"reservation1\")\n )\n;\nSET_METADATA\n Address(\"identity_rdx122kkqj7pc04gwsgcwsxmfmknlsg4qpz52rrs6vj72cujks4ukw993v\")\n \"owner_keys\"\n Enum<143u8>(\n Array<Enum>(\n Enum<1u8>(\n Bytes(\"a9a3197f2553f4cfe4603e77fd1802f14490862e11a33d81c98c430e31\")\n )\n )\n )\n;\n",
"transactionManifest": "CALL_METHOD\n Address(\"identity_rdx122kkqj7pc04gwsgcwsxmfmknlsg4qpz52rrs6vj72cujks4ukw993v\")\n \"securify\"\n;\nTAKE_FROM_WORKTOP\n Address(\"resource_rdx1nfxxxxxxxxxxdntwnrxxxxxxxxx002876444928xxxxxxxxxdntwnr\")\n Decimal(\"1\")\n Bucket(\"bucket1\")\n;\nCREATE_PROOF_FROM_BUCKET_OF_ALL\n Bucket(\"bucket1\")\n Proof(\"proof1\")\n;\nPUSH_TO_AUTH_ZONE\n Proof(\"proof1\")\n;\nSET_METADATA\n Address(\"identity_rdx122kkqj7pc04gwsgcwsxmfmknlsg4qpz52rrs6vj72cujks4ukw993v\")\n \"owner_keys\"\n Enum<143u8>(\n Array<Enum>(\n Enum<1u8>(\n Bytes(\"a9a3197f2553f4cfe4603e77fd1802f14490862e11a33d81c98c430e31\")\n )\n )\n )\n;\nALLOCATE_GLOBAL_ADDRESS\n Address(\"package_rdx1pkgxxxxxxxxxcntrlrxxxxxxxxx000648572295xxxxxxxxxcntrlr\")\n \"AccessController\"\n AddressReservation(\"reservation1\")\n NamedAddress(\"address1\")\n;\nCREATE_ACCESS_CONTROLLER\n Bucket(\"bucket1\")\n Tuple(\n Enum<2u8>(\n Enum<1u8>(\n Array<Enum>(\n Enum<0u8>(\n Enum<2u8>(\n 0u8,\n Array<Enum>()\n )\n ),\n Enum<0u8>(\n Enum<4u8>(\n Array<Enum>(\n Enum<0u8>(\n NonFungibleGlobalId(\"resource_rdx1nfxxxxxxxxxxed25sgxxxxxxxxx002236757237xxxxxxxxxed25sg:[0b5896b1b5a1de8573b3a90216e7b14b42aa11746ad2e0bcb0741c216d]\")\n )\n )\n )\n )\n )\n )\n ),\n Enum<2u8>(\n Enum<1u8>(\n Array<Enum>(\n Enum<0u8>(\n Enum<2u8>(\n 0u8,\n Array<Enum>()\n )\n ),\n Enum<0u8>(\n Enum<4u8>(\n Array<Enum>(\n Enum<0u8>(\n NonFungibleGlobalId(\"resource_rdx1nfxxxxxxxxxxed25sgxxxxxxxxx002236757237xxxxxxxxxed25sg:[0b5896b1b5a1de8573b3a90216e7b14b42aa11746ad2e0bcb0741c216d]\")\n )\n )\n )\n )\n )\n )\n ),\n Enum<2u8>(\n Enum<1u8>(\n Array<Enum>(\n Enum<0u8>(\n Enum<2u8>(\n 0u8,\n Array<Enum>()\n )\n ),\n Enum<0u8>(\n Enum<4u8>(\n Array<Enum>(\n Enum<0u8>(\n NonFungibleGlobalId(\"resource_rdx1nfxxxxxxxxxxed25sgxxxxxxxxx002236757237xxxxxxxxxed25sg:[0b5896b1b5a1de8573b3a90216e7b14b42aa11746ad2e0bcb0741c216d]\")\n )\n )\n )\n )\n )\n )\n )\n )\n Enum<1u8>(\n 20160u32\n )\n Enum<1u8>(\n AddressReservation(\"reservation1\")\n )\n;\n",
"blobs": []
},
{
Expand Down
25 changes: 16 additions & 9 deletions fixtures/transaction/create_access_controller_for_account.rtm
Original file line number Diff line number Diff line change
@@ -1,3 +1,19 @@
CALL_METHOD
Address("account_rdx128dtethfy8ujrsfdztemyjk0kvhnah6dafr57frz85dcw2c8z0td87")
"securify"
;
TAKE_FROM_WORKTOP
Address("resource_rdx1nfxxxxxxxxxxaccwnrxxxxxxxxx006664022062xxxxxxxxxaccwnr")
Decimal("1")
Bucket("bucket1")
;
CREATE_PROOF_FROM_BUCKET_OF_ALL
Bucket("bucket1")
Proof("proof1")
;
PUSH_TO_AUTH_ZONE
Proof("proof1")
;
SET_METADATA
Address("account_rdx128dtethfy8ujrsfdztemyjk0kvhnah6dafr57frz85dcw2c8z0td87")
"owner_keys"
Expand All @@ -9,15 +25,6 @@ SET_METADATA
)
)
;
CALL_METHOD
Address("account_rdx128dtethfy8ujrsfdztemyjk0kvhnah6dafr57frz85dcw2c8z0td87")
"securify"
;
TAKE_FROM_WORKTOP
Address("resource_rdx1nfxxxxxxxxxxaccwnrxxxxxxxxx006664022062xxxxxxxxxaccwnr")
Decimal("1")
Bucket("bucket1")
;
ALLOCATE_GLOBAL_ADDRESS
Address("package_rdx1pkgxxxxxxxxxcntrlrxxxxxxxxx000648572295xxxxxxxxxcntrlr")
"AccessController"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,19 @@
CALL_METHOD
Address("account_rdx128dtethfy8ujrsfdztemyjk0kvhnah6dafr57frz85dcw2c8z0td87")
"securify"
;
TAKE_FROM_WORKTOP
Address("resource_rdx1nfxxxxxxxxxxaccwnrxxxxxxxxx006664022062xxxxxxxxxaccwnr")
Decimal("1")
Bucket("bucket1")
;
CREATE_PROOF_FROM_BUCKET_OF_ALL
Bucket("bucket1")
Proof("proof1")
;
PUSH_TO_AUTH_ZONE
Proof("proof1")
;
SET_METADATA
Address("account_rdx128dtethfy8ujrsfdztemyjk0kvhnah6dafr57frz85dcw2c8z0td87")
"owner_keys"
Expand All @@ -9,15 +25,6 @@ SET_METADATA
)
)
;
CALL_METHOD
Address("account_rdx128dtethfy8ujrsfdztemyjk0kvhnah6dafr57frz85dcw2c8z0td87")
"securify"
;
TAKE_FROM_WORKTOP
Address("resource_rdx1nfxxxxxxxxxxaccwnrxxxxxxxxx006664022062xxxxxxxxxaccwnr")
Decimal("1")
Bucket("bucket1")
;
ALLOCATE_GLOBAL_ADDRESS
Address("package_rdx1pkgxxxxxxxxxcntrlrxxxxxxxxx000648572295xxxxxxxxxcntrlr")
"AccessController"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,19 @@
CALL_METHOD
Address("account_rdx128dtethfy8ujrsfdztemyjk0kvhnah6dafr57frz85dcw2c8z0td87")
"securify"
;
TAKE_FROM_WORKTOP
Address("resource_rdx1nfxxxxxxxxxxaccwnrxxxxxxxxx006664022062xxxxxxxxxaccwnr")
Decimal("1")
Bucket("bucket1")
;
CREATE_PROOF_FROM_BUCKET_OF_ALL
Bucket("bucket1")
Proof("proof1")
;
PUSH_TO_AUTH_ZONE
Proof("proof1")
;
SET_METADATA
Address("account_rdx128dtethfy8ujrsfdztemyjk0kvhnah6dafr57frz85dcw2c8z0td87")
"owner_keys"
Expand All @@ -9,15 +25,6 @@ SET_METADATA
)
)
;
CALL_METHOD
Address("account_rdx128dtethfy8ujrsfdztemyjk0kvhnah6dafr57frz85dcw2c8z0td87")
"securify"
;
TAKE_FROM_WORKTOP
Address("resource_rdx1nfxxxxxxxxxxaccwnrxxxxxxxxx006664022062xxxxxxxxxaccwnr")
Decimal("1")
Bucket("bucket1")
;
ALLOCATE_GLOBAL_ADDRESS
Address("package_rdx1pkgxxxxxxxxxcntrlrxxxxxxxxx000648572295xxxxxxxxxcntrlr")
"AccessController"
Expand Down
25 changes: 16 additions & 9 deletions fixtures/transaction/create_access_controller_for_persona.rtm
Original file line number Diff line number Diff line change
@@ -1,3 +1,19 @@
CALL_METHOD
Address("identity_rdx12tw6rt9c4l56rz6p866e35tmzp556nymxmpj8hagfewq82kspctdyw")
"securify"
;
TAKE_FROM_WORKTOP
Address("resource_rdx1nfxxxxxxxxxxdntwnrxxxxxxxxx002876444928xxxxxxxxxdntwnr")
Decimal("1")
Bucket("bucket1")
;
CREATE_PROOF_FROM_BUCKET_OF_ALL
Bucket("bucket1")
Proof("proof1")
;
PUSH_TO_AUTH_ZONE
Proof("proof1")
;
SET_METADATA
Address("identity_rdx12tw6rt9c4l56rz6p866e35tmzp556nymxmpj8hagfewq82kspctdyw")
"owner_keys"
Expand All @@ -9,15 +25,6 @@ SET_METADATA
)
)
;
CALL_METHOD
Address("identity_rdx12tw6rt9c4l56rz6p866e35tmzp556nymxmpj8hagfewq82kspctdyw")
"securify"
;
TAKE_FROM_WORKTOP
Address("resource_rdx1nfxxxxxxxxxxdntwnrxxxxxxxxx002876444928xxxxxxxxxdntwnr")
Decimal("1")
Bucket("bucket1")
;
ALLOCATE_GLOBAL_ADDRESS
Address("package_rdx1pkgxxxxxxxxxcntrlrxxxxxxxxx000648572295xxxxxxxxxcntrlr")
"AccessController"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,24 @@ TAKE_FROM_WORKTOP
Decimal("1")
Bucket("bucket1")
;
CREATE_PROOF_FROM_BUCKET_OF_ALL
Bucket("bucket1")
Proof("proof1")
;
PUSH_TO_AUTH_ZONE
Proof("proof1")
;
SET_METADATA
Address("identity_rdx12tw6rt9c4l56rz6p866e35tmzp556nymxmpj8hagfewq82kspctdyw")
"owner_keys"
Enum<143u8>(
Array<Enum>(
Enum<1u8>(
Bytes("675506ad8d7ce4c602cb06c593c0f10e1cc4dcdf2c4144360ef33ebeef")
)
)
)
;
ALLOCATE_GLOBAL_ADDRESS
Address("package_rdx1pkgxxxxxxxxxcntrlrxxxxxxxxx000648572295xxxxxxxxxcntrlr")
"AccessController"
Expand Down Expand Up @@ -87,17 +105,6 @@ CREATE_ACCESS_CONTROLLER
AddressReservation("reservation1")
)
;
SET_METADATA
Address("identity_rdx12tw6rt9c4l56rz6p866e35tmzp556nymxmpj8hagfewq82kspctdyw")
"owner_keys"
Enum<143u8>(
Array<Enum>(
Enum<1u8>(
Bytes("675506ad8d7ce4c602cb06c593c0f10e1cc4dcdf2c4144360ef33ebeef")
)
)
)
;
CALL_METHOD
Address("accesscontroller_rdx1cdgmx69r8532n7e0w6sgs8lrctmdzsmylak75a0khwmp55pau5p8pr")
"create_proof"
Expand Down
Loading

0 comments on commit bf788d9

Please sign in to comment.